From 89cb286812493321acc514b3e3ddf1a565aab6b5 Mon Sep 17 00:00:00 2001 From: tmator Date: Wed, 6 Aug 2008 21:07:31 +0000 Subject: [PATCH] Some osx build fix for OGL plugin. Not working ... git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@143 8ced0084-cf51-0410-be5f-012b33b47a6e --- SConstruct | 2 +- .../Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp | 10 ++++- Source/Plugins/Plugin_VideoOGL/Src/Globals.h | 11 +++++- .../Src/PixelShaderManager.cpp | 6 +-- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 37 +++++++++---------- Source/Plugins/Plugin_VideoOGL/Src/SConscript | 11 ++++-- .../Plugin_VideoOGL/Src/TextureMngr.cpp | 20 +++++----- .../Src/VertexShaderManager.cpp | 2 +- .../Plugin_VideoOGL/Src/rasterfont.cpp | 9 +++++ 9 files changed, 67 insertions(+), 41 deletions(-) diff --git a/SConstruct b/SConstruct index cda6e282d7..bce187fa12 100644 --- a/SConstruct +++ b/SConstruct @@ -32,7 +32,7 @@ if sys.platform == 'darwin': "Source/Core/DiscIO/Src", "Source/Core/DebuggerWX/src", "Source/Core/VideoCommon/Src", -# "Source/Plugins/Plugin_VideoOGL/Src", + "Source/Plugins/Plugin_VideoOGL/Src", "Source/Plugins/Plugin_DSP_NULL/Src", # "Source/Plugins/Plugin_DSP_LLE/Src", "Source/Plugins/Plugin_PadSimple/Src", diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp b/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp index 2ba1409ea6..5c8a8a152c 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/GUI/ConfigDlg.cpp @@ -93,12 +93,20 @@ void ConfigDialog::CreateGUIControls() wxStaticText *FSText = new wxStaticText(m_PageVideo, ID_FSTEXT, wxT("Fullscreen video mode:"), wxDefaultPosition, wxDefaultSize, 0); wxArrayString arrayStringFor_FullscreenCB; m_FullscreenCB = new wxComboBox(m_PageVideo, ID_FULLSCREENCB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenCB, 0, wxDefaultValidator); +#ifdef MACOSX + m_FullscreenCB->SetValue(wxString::FromAscii(g_Config.iFSResolution)); +#else m_FullscreenCB->SetValue(g_Config.iFSResolution); - +#endif wxStaticText *WMText = new wxStaticText(m_PageVideo, ID_WMTEXT, wxT("Windowed resolution:"), wxDefaultPosition, wxDefaultSize, 0); wxArrayString arrayStringFor_WindowResolutionCB; m_WindowResolutionCB = new wxComboBox(m_PageVideo, ID_WINDOWRESOLUTIONCB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_WindowResolutionCB, 0, wxDefaultValidator); + +#ifdef MACOSX + m_WindowResolutionCB->SetValue(wxString::FromAscii(g_Config.iWindowedRes)); +#else m_WindowResolutionCB->SetValue(g_Config.iWindowedRes); +#endif //page2 m_ForceFiltering = new wxCheckBox(m_PageEnhancements, ID_FORCEFILTERING, wxT("Force bi/trilinear filtering (May cause small glitches)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Globals.h b/Source/Plugins/Plugin_VideoOGL/Src/Globals.h index 835a8c54a9..782624b9b2 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Globals.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/Globals.h @@ -52,7 +52,16 @@ void CloseConsole(); #define I_NEED_OS2_H // HAXXOR //#include #include + +#ifdef MACOSX + +#include + +#else + #include + +#endif //#include #define __inline inline @@ -345,4 +354,4 @@ public: #endif -#endif \ No newline at end of file +#endif diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderManager.cpp index f461a3a44c..b9defabc01 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderManager.cpp @@ -67,11 +67,11 @@ void PixelShaderMngr::Init() maptocoord_mask = 0; memset(lastRGBAfull, 0, sizeof(lastRGBAfull)); - glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, &s_nMaxPixelInstructions); + glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, (GLint *)&s_nMaxPixelInstructions); int maxinst, maxattribs; - glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, &maxinst); - glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB, &maxattribs); + glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, (GLint *)&maxinst); + glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB, (GLint *)&maxattribs); ERROR_LOG("pixel max_alu=%d, max_inst=%d, max_attrib=%d\n", s_nMaxPixelInstructions, maxinst, maxattribs); char pmatrixprog[1024]; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index b49b5798d3..6f472c042e 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -28,7 +28,6 @@ #include "PixelShaderManager.h" #include "VertexLoader.h" - #ifdef _WIN32 #include "OS\Win32.h" #else @@ -101,7 +100,7 @@ bool Renderer::Create2() } int numvertexattribs=0; - glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &numvertexattribs); + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, (GLint *)&numvertexattribs); if (numvertexattribs < 11) { ERROR_LOG("*********\nGPU: OGL ERROR: Number of attributes %d not enough\nGPU: *********\n", numvertexattribs); @@ -118,13 +117,13 @@ bool Renderer::Create2() ERROR_LOG("no support for SwapInterval (framerate clamped to monitor refresh rate)\n"); #else if (glXSwapIntervalSGI) - glXSwapIntervalSGI(0); + glXSwapIntervalSGI(0); else ERROR_LOG("no support for SwapInterval (framerate clamped to monitor refresh rate)\n"); #endif // check the max texture width and height - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &g_MaxTexWidth); + glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint *)&g_MaxTexWidth); g_MaxTexHeight = g_MaxTexWidth; GL_REPORT_ERROR(); @@ -133,7 +132,7 @@ bool Renderer::Create2() if (glDrawBuffers == NULL && !GLEW_ARB_draw_buffers) glDrawBuffers = glDrawBuffersARB; - glGenFramebuffersEXT( 1, &s_uFramebuffer); + glGenFramebuffersEXT( 1, (GLuint *)&s_uFramebuffer); if (s_uFramebuffer == 0) { ERROR_LOG("failed to create the renderbuffer\n"); } @@ -142,7 +141,7 @@ bool Renderer::Create2() glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, s_uFramebuffer ); // create the framebuffer targets - glGenTextures(ARRAYSIZE(s_RenderTargets), s_RenderTargets); + glGenTextures(ARRAYSIZE((GLuint *)s_RenderTargets), (GLuint *)s_RenderTargets); for(int i = 0; i < ARRAYSIZE(s_RenderTargets); ++i) { glBindTexture(GL_TEXTURE_RECTANGLE_NV, s_RenderTargets[i]); // initialize to default @@ -162,11 +161,11 @@ bool Renderer::Create2() GL_REPORT_ERROR(); int nMaxMRT = 0; - glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &nMaxMRT); + glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, (GLint *)&nMaxMRT); if( nMaxMRT > 1 ) { // create zbuffer target - glGenTextures(1, &s_ZBufferTarget); + glGenTextures(1, (GLuint *)&s_ZBufferTarget); glBindTexture(GL_TEXTURE_RECTANGLE_NV, s_ZBufferTarget); glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, 4, s_nTargetWidth, s_nTargetHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); @@ -182,7 +181,7 @@ bool Renderer::Create2() } // create the depth buffer - glGenRenderbuffersEXT( 1, &s_DepthTarget); + glGenRenderbuffersEXT( 1, (GLuint *)&s_DepthTarget); glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, s_DepthTarget); glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH24_STENCIL8_EXT, s_nTargetWidth, s_nTargetHeight); if( glGetError() != GL_NO_ERROR ) { @@ -205,7 +204,7 @@ bool Renderer::Create2() glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_RECTANGLE_NV, 0, 0); if( bFailed ) { - glDeleteTextures(1, &s_ZBufferTarget); + glDeleteTextures(1, (GLuint *)&s_ZBufferTarget); s_ZBufferTarget = 0; } } @@ -243,10 +242,10 @@ bool Renderer::Create2() //ERROR_LOG("max buffer sizes: %d %d\n", cgGetProgramBufferMaxSize(g_cgvProf), cgGetProgramBufferMaxSize(g_cgfProf)); int nenvvertparams, nenvfragparams, naddrregisters[2]; - glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, &nenvvertparams); - glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, &nenvfragparams); - glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, &naddrregisters[0]); - glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, &naddrregisters[1]); + glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, (GLint *)&nenvvertparams); + glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, (GLint *)&nenvfragparams); + glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, (GLint *)&naddrregisters[0]); + glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, (GLint *)&naddrregisters[1]); __Log("max program env parameters: vert=%d, frag=%d\n", nenvvertparams, nenvfragparams); __Log("max program address register parameters: vert=%d, frag=%d\n", naddrregisters[0], naddrregisters[1]); @@ -282,15 +281,15 @@ void Renderer::Shutdown(void) } if( s_RenderTargets[0] ) { - glDeleteTextures(ARRAYSIZE(s_RenderTargets), s_RenderTargets); + glDeleteTextures(ARRAYSIZE((GLuint *)s_RenderTargets), (GLuint *)s_RenderTargets); memset(s_RenderTargets, 0, sizeof(s_RenderTargets)); } if( s_DepthTarget ) { - glDeleteRenderbuffersEXT(1, &s_DepthTarget); s_DepthTarget = 0; + glDeleteRenderbuffersEXT(1, (GLuint *)&s_DepthTarget); s_DepthTarget = 0; } if (s_uFramebuffer != 0) { - glDeleteFramebuffersEXT( 1, &s_uFramebuffer); + glDeleteFramebuffersEXT( 1, (GLuint *)&s_uFramebuffer); s_uFramebuffer = 0; } } @@ -786,8 +785,8 @@ void HandleGLError() int w, h; GLint fmt; glGetRenderbufferParameterivEXT(GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_INTERNAL_FORMAT_EXT, &fmt); - glGetRenderbufferParameterivEXT(GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_WIDTH_EXT, &w); - glGetRenderbufferParameterivEXT(GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_HEIGHT_EXT, &h); + glGetRenderbufferParameterivEXT(GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_WIDTH_EXT, (GLint *)&w); + glGetRenderbufferParameterivEXT(GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_HEIGHT_EXT, (GLint *)&h); switch(error) { diff --git a/Source/Plugins/Plugin_VideoOGL/Src/SConscript b/Source/Plugins/Plugin_VideoOGL/Src/SConscript index ab66030774..2f40e10cf5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/SConscript +++ b/Source/Plugins/Plugin_VideoOGL/Src/SConscript @@ -1,4 +1,5 @@ Import('env') +import sys files = ["BPStructs.cpp", "DataReader.cpp", @@ -23,7 +24,9 @@ files = ["BPStructs.cpp", # "Linux/Linux.cpp", "GUI/ConfigDlg.cpp", ] - -gfxenv=env.Copy(CXXFLAGS = " `wx-config --cppflags` `pkg-config --cflags xxf86vm` ", LINKFLAGS = "`wx-config --libs` `pkg-config --libs xxf86vm` ") - -gfxenv.SharedLibrary("../../../../Binary/linux/Plugins/zeroogl.so", files, LIBS=["videocommon", "common", "cairo", "GL", "GLU", "GLEW", "CgGL", "Cg", "X11"]) +if sys.platform == 'darwin': + gfxenv=env.Copy(CXXFLAGS = " -DMACOSX=1 `wx-config --cppflags` ", LINKFLAGS = " -framework OpenGL -framework Cg `wx-config --libs` ") + gfxenv.SharedLibrary("../../../../Binary/mac/Plugins/zeroogl.so", files, LIBS=["videocommon", "common", "cairo", "GLEW"]) +else: + gfxenv=env.Copy(CXXFLAGS = " `wx-config --cppflags` `pkg-config --cflags xxf86vm` ", LINKFLAGS = "`wx-config --libs` `pkg-config --libs xxf86vm` ") + gfxenv.SharedLibrary("../../../../Binary/linux/Plugins/zeroogl.so", files, LIBS=["videocommon", "common", "cairo", "GL", "GLU", "GLEW", "CgGL", "Cg", "X11"]) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp index 2a4cb28e9e..28c0932347 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp @@ -80,14 +80,13 @@ void TextureMngr::TCacheEntry::SetTextureParameters(TexMode0& newmode) void TextureMngr::TCacheEntry::Destroy() { - SAFE_RELEASE_TEX(texture); + SAFE_RELEASE_TEX((GLuint)texture); } void TextureMngr::Init() { temp = (u8*)AllocateMemoryPages(TEMP_SIZE); nTex2DEnabled = nTexRECTEnabled = 0; - TexDecoder_SetTexFmtOverlayOptions(g_Config.bTexFmtOverlayEnable,g_Config.bTexFmtOverlayCenter); } void TextureMngr::Invalidate() @@ -96,7 +95,6 @@ void TextureMngr::Invalidate() for (;iter!=textures.end();iter++) iter->second.Destroy(); textures.clear(); - TexDecoder_SetTexFmtOverlayOptions(g_Config.bTexFmtOverlayEnable,g_Config.bTexFmtOverlayCenter); } void TextureMngr::Shutdown() @@ -109,7 +107,7 @@ void TextureMngr::Shutdown() mapDepthTargets.clear(); if( s_TempFramebuffer ) { - glDeleteFramebuffersEXT(1, &s_TempFramebuffer); + glDeleteFramebuffersEXT(1, (GLuint *)&s_TempFramebuffer); s_TempFramebuffer = 0; } @@ -242,7 +240,7 @@ TextureMngr::TCacheEntry* TextureMngr::Load(int texstage, u32 address, int width entry.isNonPow2 = ((width&(width-1)) || (height&(height-1))); - glGenTextures(1, &entry.texture); + glGenTextures(1, (GLuint *)&entry.texture); GLenum target = entry.isNonPow2 ? GL_TEXTURE_RECTANGLE_NV : GL_TEXTURE_2D; glBindTexture(target, entry.texture); @@ -278,7 +276,7 @@ TextureMngr::TCacheEntry* TextureMngr::Load(int texstage, u32 address, int width if (g_Config.bDumpTextures) { // dump texture to file static int counter = 0; char szTemp[MAX_PATH]; - sprintf(szTemp, "%s/txt_%04i_%i.tga", g_Config.texDumpPath, counter++, format); + sprintf(szTemp, "%s/txt_%04i_%i.tga", g_Config.texDumpPath, counter++, format); SaveTexture(szTemp,target, entry.texture, width, height); } @@ -323,7 +321,7 @@ void TextureMngr::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, bool GL_REPORT_ERRORD(); if( !bIsInit ) { - glGenTextures(1, &entry.texture); + glGenTextures(1, (GLuint *)&entry.texture); glBindTexture(GL_TEXTURE_RECTANGLE_NV, entry.texture); glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, 4, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); GL_REPORT_ERRORD(); @@ -343,8 +341,8 @@ void TextureMngr::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, bool if( bReInit ) { // necessary, for some reason opengl gives errors when texture isn't deleted - glDeleteTextures(1,&entry.texture); - glGenTextures(1, &entry.texture); + glDeleteTextures(1,(GLuint *)&entry.texture); + glGenTextures(1, (GLuint *)&entry.texture); glBindTexture(GL_TEXTURE_RECTANGLE_NV, entry.texture); glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, 4, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); GL_REPORT_ERRORD(); @@ -489,7 +487,7 @@ void TextureMngr::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, bool Renderer::ResetGLState(); // reset any game specific settings if( s_TempFramebuffer == 0 ) - glGenFramebuffersEXT( 1, &s_TempFramebuffer); + glGenFramebuffersEXT( 1, (GLuint *)&s_TempFramebuffer); Renderer::SetFramebuffer(s_TempFramebuffer); Renderer::SetRenderTarget(entry.texture); @@ -587,4 +585,4 @@ void TextureMngr::DisableStage(int stage) if( !bset ) glActiveTexture(GL_TEXTURE0+stage); glDisable(GL_TEXTURE_RECTANGLE_NV); } -} \ No newline at end of file +} diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderManager.cpp index 60d4929179..69bdb069b9 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderManager.cpp @@ -68,7 +68,7 @@ void VertexShaderMngr::Init() memset(&xfregs, 0, sizeof(xfregs)); memset(xfmem, 0, sizeof(xfmem)); - glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, &s_nMaxVertexInstructions); + glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, (GLint *)&s_nMaxVertexInstructions); } void VertexShaderMngr::Shutdown() diff --git a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp index d6fe289e6d..70cdc2817f 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp @@ -21,7 +21,16 @@ #include #endif +#ifdef MACOSX + +#include + +#else + #include + +#endif + #include #include "rasterfont.h"