申请I m 发展中I 必须能够
- draw lines of different widths and colours
- draw solid color filled triangles
- draw textured (no alpha) quads
非常容易......但......
All coordinates are integer in pixel space and, very important: glReading all the pixels from the framebuffer on two different machines, with two different graphic cards, running two different OS (Linux and freebsd), must result in exactly the same sequence of bits (given an appropriate constant format conversion).
I think this is impossible to safely be achieved using opengl and hardware acceleration, since I bet different graphic cards (from different vendors) may implement different algorithms for rasterization. (OpenGl specs are clear about this, since they propose an algorithm but they also state that implementations may differ under certain circumstances). Also I don t really need hardware acceleration since I will be rendering very low speed and simple graphics.
Do you think I can achieve this by just disabling hardware acceleration? What happens in that case under linux, will I default on MESA software rasterizer? And in that case, can I be sure it will always work or I am missing something?