Skip to content

Commit

Permalink
ClearBuffer()
Browse files Browse the repository at this point in the history
  • Loading branch information
raven02 committed Aug 14, 2013
1 parent 9f0ca16 commit 2dd75b5
Showing 1 changed file with 17 additions and 18 deletions.
35 changes: 17 additions & 18 deletions GPU/GLES/Framebuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,13 +133,21 @@ void CenterRect(float *x, float *y, float *w, float *h,
}
}

void frame_clearing() {
void ClearBuffer() {
glstate.depthWrite.set(GL_TRUE);
glstate.colorMask.set(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
}

void DisableState() {
glstate.blend.disable();
glstate.cullFace.disable();
glstate.depthTest.disable();
glstate.scissorTest.disable();
glstate.stencilTest.disable();
}

void FramebufferManager::CompileDraw2DProgram() {
if (!draw2dprogram) {
draw2dprogram = glsl_create_source(basic_vs, tex_fs);
Expand Down Expand Up @@ -174,7 +182,7 @@ FramebufferManager::FramebufferManager() :

// And an initial clear. We don't clear per frame as the games are supposed to handle that
// by themselves.
frame_clearing();
ClearBuffer();

useBufferedRendering_ = g_Config.iRenderingMode != FB_NON_BUFFERED_MODE;

Expand Down Expand Up @@ -553,7 +561,7 @@ void FramebufferManager::SetRenderFrameBuffer() {
vfb->last_frame_used = gpuStats.numFlips;
frameLastFramebufUsed = gpuStats.numFlips;
vfbs_.push_back(vfb);
frame_clearing();
ClearBuffer();
glEnable(GL_DITHER);
currentRenderVfb_ = vfb;

Expand All @@ -565,7 +573,7 @@ void FramebufferManager::SetRenderFrameBuffer() {
bool useMem = g_Config.iRenderingMode == FB_READFBOMEMORY_GPU || g_Config.iRenderingMode == FB_READFBOMEMORY_CPU;
#else
bool useMem = g_Config.iRenderingMode == FB_READFBOMEMORY_GPU;
#endif
#endif
if(useMem && !vfb->memoryUpdated) {
ReadFramebufferToMemory(vfb, true);
}
Expand Down Expand Up @@ -648,7 +656,7 @@ void FramebufferManager::CopyDisplayToOutput() {
} else {
DEBUG_LOG(HLE, "Found no FBO to display! displayFBPtr = %08x", displayFramebufPtr_);
// No framebuffer to display! Clear to black.
frame_clearing();
ClearBuffer();
}
return;
}
Expand All @@ -667,11 +675,7 @@ void FramebufferManager::CopyDisplayToOutput() {
if (vfb->fbo) {
glstate.viewport.set(0, 0, PSP_CoreParameter().pixelWidth, PSP_CoreParameter().pixelHeight);
DEBUG_LOG(HLE, "Displaying FBO %08x", vfb->fb_address);
glstate.blend.disable();
glstate.cullFace.disable();
glstate.depthTest.disable();
glstate.scissorTest.disable();
glstate.stencilTest.disable();
DisableState();

fbo_bind_color_as_texture(vfb->fbo, 0);

Expand All @@ -683,7 +687,7 @@ void FramebufferManager::CopyDisplayToOutput() {
}

if (resized_) {
frame_clearing();
ClearBuffer();
}
}

Expand Down Expand Up @@ -766,7 +770,7 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s
nvfb->last_frame_used = gpuStats.numFlips;
bvfbs_.push_back(nvfb);
fbo_bind_as_render_target(nvfb->fbo);
frame_clearing();
ClearBuffer();
glEnable(GL_DITHER);
} else {
nvfb->usageFlags |= FB_USAGE_RENDERTARGET;
Expand Down Expand Up @@ -816,11 +820,7 @@ void FramebufferManager::BlitFramebuffer_(VirtualFramebuffer *src, VirtualFrameb
}

glstate.viewport.set(0, 0, dst->width, dst->height);
glstate.depthTest.disable();
glstate.blend.disable();
glstate.cullFace.disable();
glstate.scissorTest.disable();
glstate.stencilTest.disable();
DisableState();

fbo_bind_color_as_texture(src->fbo, 0);

Expand Down Expand Up @@ -1178,7 +1178,6 @@ void FramebufferManager::DecimateFBOs() {
#else
bool useMem = g_Config.iRenderingMode == FB_READFBOMEMORY_GPU;
#endif

for (size_t i = 0; i < vfbs_.size(); ++i) {
VirtualFramebuffer *vfb = vfbs_[i];
int age = frameLastFramebufUsed - vfb->last_frame_used;
Expand Down

0 comments on commit 2dd75b5

Please sign in to comment.