85 bool requestRedraw =
false;
106 if( aStatusReporter )
107 aStatusReporter->
Report(
_(
"Loading..." ) );
110 requestRedraw =
true;
111 Reload( aStatusReporter, aWarningReporter,
false );
120 requestRedraw =
true;
126 glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
127 glClearDepth( 1.0f );
128 glClearStencil( 0x00 );
129 glClear( GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
132 glPixelStorei( GL_UNPACK_ALIGNMENT, 4 );
134 glDisable( GL_STENCIL_TEST );
135 glDisable( GL_LIGHTING );
136 glDisable( GL_COLOR_MATERIAL );
137 glDisable( GL_DEPTH_TEST );
138 glDisable( GL_TEXTURE_2D );
139 glDisable( GL_BLEND );
140 glDisable( GL_MULTISAMPLE );
142 const bool was_camera_changed =
m_camera.ParametersChanged();
144 if( requestRedraw || aIsMoving || was_camera_changed )
149 if( aIsMoving || was_camera_changed )
159 glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB,
m_pboId );
162 uint8_t* ptrPBO = (uint8_t *)glMapBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB,
170 glUnmapBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB );
178 glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB,
m_pboId );
183 uint8_t* ptrPBO = (uint8_t *)glMapBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB,
188 render( ptrPBO, aStatusReporter );
191 requestRedraw =
true;
194 glUnmapBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB );
200 glClear( GL_COLOR_BUFFER_BIT );
208 glEnable( GL_BLEND );
209 glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
210 glEnable( GL_ALPHA_TEST );
212 glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB, 0 );
214 return requestRedraw;
220 if( GLEW_ARB_pixel_buffer_object )
236 glGenBuffersARB( 1, &
m_pboId );
237 glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB,
m_pboId );
238 glBufferDataARB( GL_PIXEL_UNPACK_BUFFER_ARB,
m_pboDataSize, 0, GL_STREAM_DRAW_ARB );
239 glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB, 0 );
242 wxT(
"RENDER_3D_RAYTRACE_GL:: GLEW_ARB_pixel_buffer_object is supported" ) );