Il 01/04/2015 15:42, Matthew Woehlke ha scritto:
If I go the route of pre-rendering the text into a QImage, what is the easiest way, using only the modern QOpenGL classes (since there is no longer bindTexture either), to get that into an OpenGL texture?
A rough game plan is this: * Create a QImage of a suitable size (depending on your needs) * Fill it with color or trasparency * Use QPainter to draw on it (using a font of a suitable size) * Create/upload it into a QOpenGLTexture* Create a suitable set of VBOs using QOpenGLBuffer containing vertex coordinates as well as texture coordinates for a rectangle (you'll need to triangulate it!) * Optionally create an IBO using QOpenGLBuffer containing indexes for your vertexes * Create a suitable shader program by combining a vertex shader (which may optionally do the billboarding, unless you generated vertex coordinates in the right positions) and a fragment shader (which samples from the texture using the interpolated texture coordinates which are emitted by the vertex shader) and bind it
* Create a QOpenGLVertexArrayObject and bind it* Enable and configure the attribute arrays on your shader program by binding the VBOs and specifying their format
* Optionally bind the IBO into the VAO (setup complete) To draw: * Bind the VAO * Bind (use) the shader program* Get the texture into the program, f.i. by binding the texture + setting the texture unit index as a uniform value on the right uniform sampler2D object in your program * Draw the quad via glDrawArrays / glDrawElements (depending if you used an IBO or not)
Depending on your needs you may need alpha blending enabled, alpha-discard in your fragment shader, as well as alpha-to-coverage to smooth antialiased edges.
Isn't Modern OpenGL lovely? ;) Cheers, -- Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Software Engineer KDAB (UK) Ltd., a KDAB Group company | Tel: UK +44-1625-809908 KDAB - The Qt Experts
smime.p7s
Description: Firma crittografica S/MIME
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest