invoke wglGetProcAddress,"glCreateShader"
mov [glCreateShader],rax
invoke wglGetProcAddress,"glCreateProgram"
mov [glCreateProgram],rax
invoke wglGetProcAddress,"glShaderSource"
mov [glShaderSource],rax
invoke wglGetProcAddress,"glCompileShader"
mov [glCompileShader],rax
invoke wglGetProcAddress,"glAttachShader"
mov [glAttachShader],rax
invoke wglGetProcAddress,"glLinkProgram"
mov [glLinkProgram],rax
invoke wglGetProcAddress,"glUseProgram"
mov [glUseProgram],rax
invoke glCreateShader, GL_FRAGMENT_SHADER
mov [vs],rax
invoke glCreateProgram
mov [prg],rax
invoke glShaderSource,[vs],1,_fshader_ptr,0
invoke glCompileShader,[vs]
invoke glAttachShader,[prg],[vs]
invoke glLinkProgram,[prg]
invoke glUseProgram,[prg]
...
glGenBuffers dq ?
glCreateShader dq ?
glCreateProgram dq ?
glShaderSource dq ?
glCompileShader dq ?
glAttachShader dq ?
glLinkProgram dq ?
glUseProgram dq ?
vs dq ?
prg dq ?
align 1
_fshader db 'void main(){ gl_FragColor = vec4(0.0,0.0,1.0,1.0); } ',0
align 8
_fshader_ptr dq _fshader