Skip to content

Commit

Permalink
颜色渐变
Browse files Browse the repository at this point in the history
  • Loading branch information
langresser committed Aug 8, 2012
1 parent c94cf11 commit 915abd9
Showing 1 changed file with 37 additions and 18 deletions.
55 changes: 37 additions & 18 deletions smc/src/video/renderer.cpp
Expand Up @@ -394,31 +394,50 @@ void cGradient_Request :: Draw( void )
}

Render_Advanced();
#ifdef USE_GL

if( m_dir == DIR_VERTICAL )
{
glBegin( GL_POLYGON );
glColor4ub( m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha );
glVertex2f( 0.0f, 0.0f );
glVertex2f( m_rect.m_w, 0.0f );
glColor4ub( m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha );
glVertex2f( m_rect.m_w, m_rect.m_h );
glVertex2f( 0.0f, m_rect.m_h );
glEnd();
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
GLfloat vertex2[]={0.0f, 0.0f,
m_rect.m_w, 0.0f,
m_rect.m_w, m_rect.m_h,
0.0f, m_rect.m_h};

Uint8 colorv[]={m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha,
m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha,
m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha,
m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha};


glVertexPointer(2, GL_FLOAT, 0, vertex2);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorv);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
}
else if( m_dir == DIR_HORIZONTAL )
{
glBegin( GL_POLYGON );
glColor4ub( m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha );
glVertex2f( 0.0f, m_rect.m_h );
glVertex2f( 0.0f, 0.0f );
glColor4ub( m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha );
glVertex2f( m_rect.m_w, 0.0f );
glVertex2f( m_rect.m_w, m_rect.m_h );
glEnd();
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
GLfloat vertex2[]={0.0f, m_rect.m_h,
0.0f, 0.0f,
m_rect.m_w, 0.0f,
m_rect.m_w, m_rect.m_h};

Uint8 colorv[]={m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha,
m_color_1.red, m_color_1.green, m_color_1.blue, m_color_1.alpha,
m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha,
m_color_2.red, m_color_2.green, m_color_2.blue, m_color_2.alpha};

glVertexPointer(2, GL_FLOAT, 0, vertex2);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorv);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
}
#endif

// clear color
glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );

Expand Down

0 comments on commit 915abd9

Please sign in to comment.