From 8ff64a12eaea2502217ccd2060e60e88f53db9a9 Mon Sep 17 00:00:00 2001 From: "memberTwo.mb2" Date: Sat, 17 Jan 2009 16:16:47 +0000 Subject: [PATCH] fix XFB enabled at boot. Should save some click for homebrew. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1893 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Plugins/Plugin_VideoOGL/Src/XFB.cpp | 7 +++++++ Source/Plugins/Plugin_VideoOGL/Src/XFB.h | 2 ++ Source/Plugins/Plugin_VideoOGL/Src/main.cpp | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/XFB.cpp b/Source/Plugins/Plugin_VideoOGL/Src/XFB.cpp index ad82da474c..2e5f84fde5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/XFB.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/XFB.cpp @@ -38,19 +38,26 @@ enum { #if XFB_USE_SHADERS static GLuint xfb_decoded_texture; +static int XFBInitStatus = 0; void XFB_Init() { glGenTextures(1, &xfb_decoded_texture); glBindTexture(GL_TEXTURE_RECTANGLE_ARB, xfb_decoded_texture); glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 4, XFB_WIDTH, XFB_BUF_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + XFBInitStatus = 1; } void XFB_Shutdown() { glDeleteTextures(1, &xfb_decoded_texture); + XFBInitStatus = 0; } +int XFB_isInit() +{ + return XFBInitStatus; +} void XFB_Write(u8 *xfb_in_ram, const TRectangle& sourceRc, u32 dstWd, u32 dstHt) { diff --git a/Source/Plugins/Plugin_VideoOGL/Src/XFB.h b/Source/Plugins/Plugin_VideoOGL/Src/XFB.h index 12437a0248..85f55cdd6e 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/XFB.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/XFB.h @@ -30,4 +30,6 @@ void XFB_Draw(u8 *xfb_in_ram, u32 width, u32 height, s32 yOffset); void XFB_Shutdown(); +int XFB_isInit(); + #endif diff --git a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp index 4cddd5e083..e3145b32c1 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp @@ -364,7 +364,8 @@ void Video_UpdateXFB(u8* _pXFB, u32 _dwWidth, u32 _dwHeight, s32 _dwYOffset) { if(g_Config.bUseXFB) { - XFB_Draw(_pXFB, _dwWidth, _dwHeight, _dwYOffset); + if (XFB_isInit()) + XFB_Draw(_pXFB, _dwWidth, _dwHeight, _dwYOffset); } }