77 QOpenGLTextureGlyphCache(QFontEngine::GlyphFormat glyphFormat,
const QTransform &matrix,
const QColor &color = QColor());
78 ~QOpenGLTextureGlyphCache();
80 virtual void createTextureData(
int width,
int height) override;
81 virtual void resizeTextureData(
int width,
int height) override;
82 virtual void fillTexture(
const Coord &c,
84 const QFixedPoint &subPixelPosition) override;
85 virtual int glyphPadding()
const override;
86 virtual int maxTextureWidth()
const override;
87 virtual int maxTextureHeight()
const override;
89 inline GLuint texture()
const {
90 QOpenGLTextureGlyphCache *that =
const_cast<QOpenGLTextureGlyphCache *>(
this);
91 QOpenGLGlyphTexture *glyphTexture = that->m_textureResource;
92 return glyphTexture ? glyphTexture->m_texture : 0;
95 inline int width()
const {
96 QOpenGLTextureGlyphCache *that =
const_cast<QOpenGLTextureGlyphCache *>(
this);
97 QOpenGLGlyphTexture *glyphTexture = that->m_textureResource;
98 return glyphTexture ? glyphTexture->m_width : 0;
100 inline int height()
const {
101 QOpenGLTextureGlyphCache *that =
const_cast<QOpenGLTextureGlyphCache *>(
this);
102 QOpenGLGlyphTexture *glyphTexture = that->m_textureResource;
103 return glyphTexture ? glyphTexture->m_height : 0;
106 inline void setPaintEnginePrivate(QOpenGL2PaintEngineExPrivate *p) { pex = p; }
108 inline const QOpenGLContextGroup *contextGroup()
const {
return m_textureResource ? m_textureResource->group() :
nullptr; }
110 inline int serialNumber()
const {
return m_serialNumber; }
116 FilterMode filterMode()
const {
return m_filterMode; }
117 void setFilterMode(FilterMode m) { m_filterMode = m; }
121 QOpenGL2PaintEngineExPrivate *paintEnginePrivate()
const
127 void setupVertexAttribs();
129 QOpenGLGlyphTexture *m_textureResource;
131 QOpenGL2PaintEngineExPrivate *pex;
132 QOpenGLShaderProgram *m_blitProgram;
133 FilterMode m_filterMode;
135 GLfloat m_vertexCoordinateArray[8];
136 GLfloat m_textureCoordinateArray[8];
140 QOpenGLBuffer m_buffer;
141 QOpenGLVertexArrayObject m_vao;
void invalidateResource() override
void freeResource(QOpenGLContext *context) override
QOpenGLGlyphTexture(QOpenGLContext *ctx)
static void load_glyph_image_region_to_texture(QOpenGLContext *ctx, const QImage &srcImg, int x, int y, int w, int h, GLuint texture, int tx, int ty)
static void load_glyph_image_to_texture(QOpenGLContext *ctx, QImage &img, GLuint texture, int tx, int ty)
static QT_BEGIN_NAMESPACE int next_qopengltextureglyphcache_serial_number()