204
void CANVAS_FRAME::DrawPrimitives()
206
for( int j = 0; j < 10; j++ )
208
m_gal->SetStrokeColor( COLOR4D( 1, 0.7, 0.6, 0.8 ) );
209
m_gal->SetFillColor( COLOR4D( 0, 1, 1, 0.1 * j ) );
210
for( int i = 0; i < 20; i++ )
212
m_gal->DrawCircle( VECTOR2D( 500 + 500 * i, 500 + 1000 * j ), 100 + 20 * i );
217
void CANVAS_FRAME::DrawPrimitives2()
219
for( int j = 0; j < 10; j++ )
221
m_gal->SetFillColor( COLOR4D( 1, 1, 0, 0.1 * j ) );
222
m_gal->SetStrokeColor( COLOR4D( 1, 0.7, 0.6, 0.8 ) );
224
for( int i = 0; i < 20; i++ )
226
m_gal->DrawCircle( VECTOR2D( 500 + 1000 * j, 500 + 500 * i ), 100 + 20 * i );
201
231
void CANVAS_FRAME::TestShader()
203
233
//m_gal->SetLineCap(LINE_CAP_ROUND);
204
234
//m_gal->SetLineWidth(3);
206
m_gal->SetLayerDepth( 0 );
208
glEnable( GL_STENCIL_TEST );
209
glStencilFunc( GL_ALWAYS, 0, 0 );
210
glStencilOp( GL_REPLACE, GL_REPLACE, GL_REPLACE );
211
glColorMask( false, false, false, false );
212
m_gal->SetStrokeColor( COLOR4D( 1, 1, 1, 1 ) );
213
for ( int j = 0; j < 10; j++ )
215
for ( int i = 0; i < 20; i++ )
217
m_gal->DrawCircle( VECTOR2D( 500 + 500 * i, 500 + 1000 * j ), 100 + 20 * i );
220
glStencilFunc( GL_NOTEQUAL, 1, 1 );
221
glStencilOp( GL_KEEP, GL_KEEP, GL_REPLACE );
222
glColorMask( true, true, true, true );
224
for ( int j = 0; j < 10; j++ )
226
m_gal->SetStrokeColor( COLOR4D( 0, 1, 1, 0.1 * j ) );
227
for ( int i = 0; i < 20; i++ )
229
m_gal->DrawCircle( VECTOR2D( 500 + 500 * i, 500 + 1000 * j ), 100 + 20 * i );
232
glDisable( GL_STENCIL_TEST );
234
236
glClear( GL_DEPTH_BUFFER_BIT );
236
glEnable( GL_STENCIL_TEST );
237
glStencilFunc( GL_ALWAYS, 0, 0 );
238
glStencilOp( GL_REPLACE, GL_REPLACE, GL_REPLACE );
239
glColorMask( false, false, false, false );
240
m_gal->SetStrokeColor( COLOR4D( 0, 1, 1, 1 ) );
241
for ( int j = 0; j < 10; j++ )
243
for ( int i = 0; i < 20; i++ )
245
m_gal->DrawCircle( VECTOR2D( 500 + 1000 * j, 500 + 500 * i ), 100 + 20 * i );
248
glStencilFunc( GL_NOTEQUAL, 1, 1 );
249
glStencilOp( GL_KEEP, GL_KEEP, GL_REPLACE );
250
glColorMask( true, true, true, true );
252
for ( int j = 0; j < 10; j++ )
254
m_gal->SetStrokeColor( COLOR4D( 1, 1, 0, 0.1 * j ) );
255
for ( int i = 0; i < 20; i++ )
257
m_gal->DrawCircle( VECTOR2D( 500 + 1000 * j, 500 + 500 * i ), 100 + 20 * i );
260
glDisable( GL_STENCIL_TEST );
238
m_gal->SetLayerDepth( 0 );
239
m_gal->SetLayerDepth( 0 );
240
m_gal->SetIsStroke( false );
241
m_gal->SetIsFill( true );
242
m_gal->SetLineWidth( 20 );
244
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
246
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_PREPARE_EDGES );
248
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_DRAW_EDGES );
250
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
252
m_gal->SetLayerDepth( -10 );
253
m_gal->SetIsStroke( false );
255
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
257
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_PREPARE_EDGES );
259
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_DRAW_EDGES );
261
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
263
m_gal->SetLayerDepth( -20 );
264
m_gal->SetIsStroke( true );
266
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
268
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_PREPARE_EDGES );
270
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_DRAW_EDGES );
272
( (OPENGL_GAL*)m_gal )->SetDrawMode( OPENGL_GAL::DRAW_MODE_NORMAL );
273
m_gal->SetIsStroke( false );
263
276
void CANVAS_FRAME::DrawCoordinates()
265
m_gal->SetLineWidth( 20 );
278
m_gal->SetLineWidth( 10 );
266
279
m_gal->SetStrokeColor( COLOR4D( 1, 1, 1, 1 ) );
267
280
m_font.SetHorizontalJustify( HORIZONTAL_JUSTIFY_CENTER );
268
281
m_font.SetVerticalJustify( VERTICAL_JUSTIFY_CENTER );
269
282
m_font.SetGlyphSize( VECTOR2D( 100, 100 ) );
270
for ( int i = 0; i < 10; i++ )
283
for( int i = 0; i < 10; i++ )
272
285
std::stringstream ss;
274
m_font.Draw( ss.str(), POINT( 0, i * 1000 ), 0 );
287
m_font.Draw( ss.str(), POINT2D( 0, i * 1000 ), 0 );
277
m_font.Draw( ss.str(), POINT( i * 1000, 0 ), 0 );
290
m_font.Draw( ss.str(), POINT2D( i * 1000, 0 ), 0 );