| Feature | OpenGL 2.0 | DirectX 9.0c | | --- | --- | --- | | Shader Language | GLSL (cross-vendor) | HLSL (Microsoft, but cross-compiled) | | Pipeline layout | Explicit state machine | COM objects (more OOP) | | Vertex shader max instructions | Unlimited (dependent on driver) | 512-1024 slots | | Fragment shader precision | Full floating-point (FP32) | Optional FP24/FP32 |
And a matching fragment shader:
#version 110 attribute vec4 a_position; attribute vec3 a_color; varying vec3 v_color; uniform mat4 u_mvpMatrix; void main() v_color = a_color; gl_Position = u_mvpMatrix * a_position; opengl 20