Bug 561959. Implement ColorLayer, which paints a solid color into its layer. r=bas,sr=vlad

This commit is contained in:
Robert O'Callahan
2010-05-13 12:56:11 +12:00
parent a5f7a19ce0
commit 371a289e0f
10 changed files with 330 additions and 6 deletions

View File

@@ -134,6 +134,8 @@ ContainerLayerOGL::RenderLayer(int aPreviousFrameBuffer)
GLuint frameBuffer;
RGBLayerProgram *rgbProgram =
static_cast<LayerManagerOGL*>(mManager)->GetRGBLayerProgram();
ColorLayerProgram *colorProgram =
static_cast<LayerManagerOGL*>(mManager)->GetColorLayerProgram();
YCbCrLayerProgram *yCbCrProgram =
static_cast<LayerManagerOGL*>(mManager)->GetYCbCrLayerProgram();
@@ -174,11 +176,13 @@ ContainerLayerOGL::RenderLayer(int aPreviousFrameBuffer)
*/
rgbProgram->Activate();
rgbProgram->PushRenderTargetOffset((GLfloat)GetVisibleRect().x,
(GLfloat)GetVisibleRect().y);
rgbProgram->PushRenderTargetOffset((GLfloat)GetVisibleRect().x, (GLfloat)GetVisibleRect().y);
colorProgram->Activate();
colorProgram->PushRenderTargetOffset((GLfloat)GetVisibleRect().x, (GLfloat)GetVisibleRect().y);
yCbCrProgram->Activate();
yCbCrProgram->PushRenderTargetOffset((GLfloat)GetVisibleRect().x,
(GLfloat)GetVisibleRect().y);
yCbCrProgram->PushRenderTargetOffset((GLfloat)GetVisibleRect().x, (GLfloat)GetVisibleRect().y);
} else {
frameBuffer = aPreviousFrameBuffer;
}
@@ -211,6 +215,9 @@ ContainerLayerOGL::RenderLayer(int aPreviousFrameBuffer)
yCbCrProgram->Activate();
yCbCrProgram->PopRenderTargetOffset();
colorProgram->Activate();
colorProgram->PopRenderTargetOffset();
rgbProgram->Activate();
rgbProgram->PopRenderTargetOffset();