mirror of https://github.com/PCSX2/pcsx2.git
gsdx:
* don't delete the wnd in GSclose. It can still be used later * Properly detect the GL_ARB_gpu_shader5 extension for Fxaa * A couple of fix in Create (GSopen1) of GSWndEGL/GSWndOGL git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5674 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
b7a6dd93b3
commit
f4ce6d6fce
|
@ -105,6 +105,7 @@ namespace GLLoader {
|
||||||
bool found_GL_NV_copy_image = false;
|
bool found_GL_NV_copy_image = false;
|
||||||
bool found_GL_ARB_copy_image = false;
|
bool found_GL_ARB_copy_image = false;
|
||||||
bool found_only_gl30 = false;
|
bool found_only_gl30 = false;
|
||||||
|
bool found_GL_ARB_gpu_shader5 = false;
|
||||||
|
|
||||||
bool check_gl_version(uint32 major, uint32 minor) {
|
bool check_gl_version(uint32 major, uint32 minor) {
|
||||||
|
|
||||||
|
@ -165,19 +166,23 @@ namespace GLLoader {
|
||||||
if (ext.compare("GL_NV_copy_image") == 0) found_GL_NV_copy_image = true;
|
if (ext.compare("GL_NV_copy_image") == 0) found_GL_NV_copy_image = true;
|
||||||
// Replace previous extensions (when driver will be updated)
|
// Replace previous extensions (when driver will be updated)
|
||||||
if (ext.compare("GL_ARB_copy_image") == 0) found_GL_ARB_copy_image = true;
|
if (ext.compare("GL_ARB_copy_image") == 0) found_GL_ARB_copy_image = true;
|
||||||
|
if (ext.compare("GL_ARB_gpu_shader5") == 0) found_GL_ARB_gpu_shader5 = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!found_GL_ARB_separate_shader_objects) {
|
if (!found_GL_ARB_separate_shader_objects) {
|
||||||
fprintf(stderr, "GL_ARB_separate_shader_objects is not supported\n");
|
fprintf(stderr, "INFO: GL_ARB_separate_shader_objects is not supported\n");
|
||||||
}
|
}
|
||||||
if (!found_GL_ARB_shading_language_420pack) {
|
if (!found_GL_ARB_shading_language_420pack) {
|
||||||
fprintf(stderr, "GL_ARB_shading_language_420pack is not supported\n");
|
fprintf(stderr, "INFO: GL_ARB_shading_language_420pack is not supported\n");
|
||||||
}
|
}
|
||||||
if (!found_GL_ARB_texture_storage) {
|
if (!found_GL_ARB_texture_storage) {
|
||||||
fprintf(stderr, "GL_ARB_texture_storage is not supported\n");
|
fprintf(stderr, "FATAL: GL_ARB_texture_storage is not supported\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!found_GL_ARB_gpu_shader5) {
|
||||||
|
fprintf(stderr, "INFO: GL_ARB_gpu_shader5 is not supported\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (theApp.GetConfig("override_GL_ARB_shading_language_420pack", -1) != -1) {
|
if (theApp.GetConfig("override_GL_ARB_shading_language_420pack", -1) != -1) {
|
||||||
|
|
|
@ -107,4 +107,5 @@ namespace GLLoader {
|
||||||
extern bool found_geometry_shader;
|
extern bool found_geometry_shader;
|
||||||
extern bool fglrx_buggy_driver;
|
extern bool fglrx_buggy_driver;
|
||||||
extern bool found_only_gl30;
|
extern bool found_only_gl30;
|
||||||
|
extern bool found_GL_ARB_gpu_shader5;
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,10 +182,6 @@ EXPORT_C GSclose()
|
||||||
if (s_gs->m_wnd)
|
if (s_gs->m_wnd)
|
||||||
{
|
{
|
||||||
s_gs->m_wnd->Detach();
|
s_gs->m_wnd->Detach();
|
||||||
|
|
||||||
delete s_gs->m_wnd;
|
|
||||||
|
|
||||||
s_gs->m_wnd = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,6 +329,7 @@ static int _GSopen(void** dsp, char* title, int renderer, int threads = -1)
|
||||||
}
|
}
|
||||||
catch (GSDXRecoverableError)
|
catch (GSDXRecoverableError)
|
||||||
{
|
{
|
||||||
|
wnd[i]->Detach();
|
||||||
delete wnd[i];
|
delete wnd[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1441,6 +1438,7 @@ EXPORT_C GSReplay(char* lpszCmdLine, int renderer)
|
||||||
void* hWnd = NULL;
|
void* hWnd = NULL;
|
||||||
|
|
||||||
_GSopen((void**)&hWnd, "", renderer);
|
_GSopen((void**)&hWnd, "", renderer);
|
||||||
|
if (s_gs->m_wnd == NULL) return;
|
||||||
|
|
||||||
uint32 crc;
|
uint32 crc;
|
||||||
fread(&crc, 4, 1, fp);
|
fread(&crc, 4, 1, fp);
|
||||||
|
|
|
@ -318,7 +318,7 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
// FIXME need to manually set the index...
|
// FIXME need to manually set the index...
|
||||||
// FIXME need dofxaa interface too
|
// FIXME need dofxaa interface too
|
||||||
std::string fxaa_macro = "#define FXAA_GLSL_130 1\n";
|
std::string fxaa_macro = "#define FXAA_GLSL_130 1\n";
|
||||||
if (!GLLoader::found_only_gl30) {
|
if (GLLoader::found_GL_ARB_gpu_shader5) {
|
||||||
// This extension become core on openGL4
|
// This extension become core on openGL4
|
||||||
fxaa_macro += "#extension GL_ARB_gpu_shader5 : enable\n";
|
fxaa_macro += "#extension GL_ARB_gpu_shader5 : enable\n";
|
||||||
fxaa_macro += "#define FXAA_GATHER4_ALPHA 1\n";
|
fxaa_macro += "#define FXAA_GATHER4_ALPHA 1\n";
|
||||||
|
|
|
@ -52,6 +52,11 @@ GSRenderer::~GSRenderer()
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
delete m_dev;
|
delete m_dev;
|
||||||
|
|
||||||
|
if (m_wnd)
|
||||||
|
{
|
||||||
|
delete m_wnd;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSRenderer::CreateWnd(const string& title, int w, int h)
|
bool GSRenderer::CreateWnd(const string& title, int w, int h)
|
||||||
|
|
|
@ -169,7 +169,9 @@ bool GSWndEGL::Create(const string& title, int w, int h)
|
||||||
|
|
||||||
CheckContext();
|
CheckContext();
|
||||||
|
|
||||||
if (m_NativeWindow != 0)
|
PopulateGlFunction();
|
||||||
|
|
||||||
|
if (m_NativeWindow == 0)
|
||||||
throw GSDXRecoverableError();
|
throw GSDXRecoverableError();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -190,7 +190,7 @@ bool GSWndOGL::Create(const string& title, int w, int h)
|
||||||
|
|
||||||
PopulateGlFunction();
|
PopulateGlFunction();
|
||||||
|
|
||||||
if (m_NativeWindow != 0)
|
if (m_NativeWindow == 0)
|
||||||
throw GSDXRecoverableError();
|
throw GSDXRecoverableError();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue