Fixed 2D pointer particle display

This commit is contained in:
Yoz Grahame 2012-11-09 15:41:19 -08:00
parent 9142f8c876
commit 6e62e9ee32

View file

@ -205,6 +205,7 @@ char texture_filename[] = "grayson-particle.png";
//unsigned int texture_height = 256; //unsigned int texture_height = 256;
float particle_attenuation_quadratic[] = { 0.0f, 0.0f, 2.0f }; // larger Z = smaller particles float particle_attenuation_quadratic[] = { 0.0f, 0.0f, 2.0f }; // larger Z = smaller particles
float pointer_attenuation_quadratic[] = { 1.0f, 0.0f, 0.0f }; // for 2D view
@ -623,38 +624,27 @@ void display(void)
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
// Draw Point Sprites /* Draw Point Sprites */
/* assuming you have setup a 32-bit RGBA texture with a legal name */ //glActiveTexture(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
glEnable( GL_TEXTURE_2D ); glEnable( GL_TEXTURE_2D );
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
//glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glPointParameterfvARB( GL_POINT_DISTANCE_ATTENUATION_ARB, particle_attenuation_quadratic ); glPointParameterfvARB( GL_POINT_DISTANCE_ATTENUATION_ARB, particle_attenuation_quadratic );
float maxSize = 0.0f; float maxSize = 0.0f;
glGetFloatv( GL_POINT_SIZE_MAX_ARB, &maxSize ); glGetFloatv( GL_POINT_SIZE_MAX_ARB, &maxSize );
glPointSize( maxSize ); glPointSize( maxSize );
glPointParameterfARB( GL_POINT_SIZE_MAX_ARB, maxSize ); glPointParameterfARB( GL_POINT_SIZE_MAX_ARB, maxSize );
// glPointParameterfARB( GL_POINT_SIZE_MIN_ARB, 0.001f ); glPointParameterfARB( GL_POINT_SIZE_MIN_ARB, 0.001f );
glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE ); glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE );
glEnable( GL_POINT_SPRITE_ARB ); glEnable( GL_POINT_SPRITE_ARB );
glBegin( GL_POINTS ); glBegin( GL_POINTS );
{ {
for (i = 0; i < NUM_TRIS; i++) for (i = 0; i < NUM_TRIS; i++)
{ {
// glColor3f(tris.colors[i*3],
// tris.colors[i*3+1],
// tris.colors[i*3+2]);
// for (j = 0; j < 3; j++)
// {
// glVertex3f(tris.vertices[i*9 + j*3],
// tris.vertices[i*9 + j*3 + 1],
// tris.vertices[i*9 + j*3 + 2]);
// }
// glNormal3f(tris.normals[i*3],
// tris.normals[i*3 + 1],
// tris.normals[i*3 + 2]);
glVertex3f(tris.vertices[i*3], glVertex3f(tris.vertices[i*3],
tris.vertices[i*3+1], tris.vertices[i*3+1],
tris.vertices[i*3+2]); tris.vertices[i*3+2]);
@ -662,9 +652,11 @@ void display(void)
} }
} }
glEnd(); glEnd();
glDisable( GL_TEXTURE_2D ); glDisable( GL_TEXTURE_2D );
glDisable( GL_POINT_SPRITE_ARB ); glDisable( GL_POINT_SPRITE_ARB );
// Show field vectors // Show field vectors
if (display_field) field_render(); if (display_field) field_render();
@ -696,20 +688,20 @@ void display(void)
if (mouse_pressed == 1) if (mouse_pressed == 1)
{ {
glPointSize(20.f); glPointParameterfvARB( GL_POINT_DISTANCE_ATTENUATION_ARB, pointer_attenuation_quadratic );
glPointSize( 10.0f );
glColor3f(1,1,1); glColor3f(1,1,1);
glEnable(GL_POINT_SMOOTH); //glEnable(GL_POINT_SMOOTH);
glBegin(GL_POINTS); glBegin(GL_POINTS);
glVertex2f(target_x, target_y); glVertex2f(target_x, target_y);
glEnd(); glEnd();
char val[20]; char val[20];
sprintf(val, "%d,%d", target_x, target_y); sprintf(val, "%d,%d", target_x, target_y);
drawtext(target_x, target_y-20, 0.08, 0, 1.0, 0, val, 0, 1, 0); drawtext(target_x, target_y-20, 0.08, 0, 1.0, 0, val, 0, 1, 0);
} }
if (display_head_mouse) if (display_head_mouse)
{ {
glPointSize(20.f); glPointSize(10.0f);
glColor4f(1.0, 1.0, 0.0, 0.8); glColor4f(1.0, 1.0, 0.0, 0.8);
glEnable(GL_POINT_SMOOTH); glEnable(GL_POINT_SMOOTH);
glBegin(GL_POINTS); glBegin(GL_POINTS);