… | |
… | |
13 | #include "entity.h" |
13 | #include "entity.h" |
14 | #include "txtprt_import.h" |
14 | #include "txtprt_import.h" |
15 | |
15 | |
16 | CGcontext cgc; |
16 | CGcontext cgc; |
17 | CGprogram vsh, fsh; |
17 | CGprogram vsh, fsh; |
18 | CGparameter mv, mvp; |
18 | CGparameter mv, mvp, lightpos; |
19 | |
19 | |
20 | static void CheckCgError(void) |
20 | static void CheckCgError(void) |
21 | { |
21 | { |
22 | CGerror err = cgGetError(); |
22 | CGerror err = cgGetError(); |
23 | |
23 | |
… | |
… | |
382 | vsh = cgCreateProgramFromFile (cgc, CG_SOURCE, "vsh.cg", CG_PROFILE_ARBVP1, 0, 0); |
382 | vsh = cgCreateProgramFromFile (cgc, CG_SOURCE, "vsh.cg", CG_PROFILE_ARBVP1, 0, 0); |
383 | CheckCgError (); |
383 | CheckCgError (); |
384 | cgGLLoadProgram (vsh); |
384 | cgGLLoadProgram (vsh); |
385 | CheckCgError (); |
385 | CheckCgError (); |
386 | mv = cgGetNamedParameter (vsh, "WorldProj"); |
386 | mv = cgGetNamedParameter (vsh, "WorldProj"); |
387 | CheckCgError (); |
|
|
388 | mvp = cgGetNamedParameter (vsh, "WorldViewProj"); |
387 | mvp = cgGetNamedParameter (vsh, "WorldViewProj"); |
|
|
388 | lightpos = cgGetNamedParameter (vsh, "LightPos"); |
389 | CheckCgError (); |
389 | CheckCgError (); |
390 | cgGLEnableProfile (CG_PROFILE_ARBVP1); |
390 | cgGLEnableProfile (CG_PROFILE_ARBVP1); |
391 | CheckCgError (); |
391 | CheckCgError (); |
392 | |
392 | |
393 | fsh = cgCreateProgramFromFile (cgc, CG_SOURCE, "fsh.cg", CG_PROFILE_ARBFP1, 0, 0); |
393 | fsh = cgCreateProgramFromFile (cgc, CG_SOURCE, "fsh.cg", CG_PROFILE_ARBFP1, 0, 0); |
|
|
394 | CheckCgError (); |
394 | cgGLLoadProgram (fsh); |
395 | cgGLLoadProgram (fsh); |
|
|
396 | CheckCgError (); |
395 | cgGLEnableProfile (CG_PROFILE_ARBFP1); |
397 | cgGLEnableProfile (CG_PROFILE_ARBFP1); |
|
|
398 | CheckCgError (); |
396 | |
399 | |
397 | cgGLBindProgram (vsh); |
400 | cgGLBindProgram (vsh); |
|
|
401 | CheckCgError (); |
398 | cgGLBindProgram (fsh); |
402 | cgGLBindProgram (fsh); |
|
|
403 | CheckCgError (); |
399 | |
404 | |
400 | /* Loop until done. */ |
405 | /* Loop until done. */ |
401 | start_time = SDL_GetTicks (); |
406 | start_time = SDL_GetTicks (); |
402 | frames = 0; |
407 | frames = 0; |
403 | |
408 | |
… | |
… | |
413 | |
418 | |
414 | camera.p.x += (camera_velocity_factor * camera_velocity.x) * timer.diff; |
419 | camera.p.x += (camera_velocity_factor * camera_velocity.x) * timer.diff; |
415 | camera.p.y += (camera_velocity_factor * camera_velocity.y) * timer.diff; |
420 | camera.p.y += (camera_velocity_factor * camera_velocity.y) * timer.diff; |
416 | camera.p.z += (camera_velocity_factor * camera_velocity.z) * timer.diff; |
421 | camera.p.z += (camera_velocity_factor * camera_velocity.z) * timer.diff; |
417 | |
422 | |
418 | GLfloat lightp[4]; |
423 | cgGLSetParameter4f (lightpos, camera.p.x, camera.p.y, camera.p.z, 1); |
419 | lightp[0] = camera.p.x; |
|
|
420 | lightp[1] = camera.p.y; |
|
|
421 | lightp[2] = camera.p.z; |
|
|
422 | lightp[3] = 1; |
|
|
423 | glLightfv (GL_LIGHT0, GL_POSITION, lightp); |
|
|
424 | |
424 | |
425 | #if 0 |
425 | #if 0 |
426 | static GLfloat ry; |
426 | static GLfloat ry; |
427 | ry += 0.001; |
427 | ry += 0.001; |
428 | camera.d.x = cos (ry); |
428 | camera.d.x = cos (ry); |