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

Attachment: smime.p7s
Description: Firma crittografica S/MIME

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to