mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-11 05:26:24 +02:00
Merge pull request #4213 from thedax/win32OpenGLError
Win32: Combine two errors into one, and make it translatable.
This commit is contained in:
commit
56679a1f04
1 file changed
+26
-32
+26
-32
@@ -7,6 +7,8 @@
|
||||
#include "util/text/utf8.h"
|
||||
#include "GL/gl.h"
|
||||
#include "GL/wglew.h"
|
||||
#include "util/text/utf8.h"
|
||||
#include "i18n/i18n.h"
|
||||
|
||||
#include "Windows/OpenGLBase.h"
|
||||
|
||||
@@ -121,22 +123,22 @@ bool GL_Init(HWND window, std::string *error_message) {
|
||||
}
|
||||
|
||||
if (!(PixelFormat = ChoosePixelFormat(hDC, &pfd))) {
|
||||
*error_message = "Can't Find A Suitable PixelFormat.";
|
||||
*error_message = "Can't find a suitable PixelFormat.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!SetPixelFormat(hDC, PixelFormat, &pfd)) {
|
||||
*error_message = "Can't Set The PixelFormat.";
|
||||
*error_message = "Can't set the PixelFormat.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!(hRC = wglCreateContext(hDC))) {
|
||||
*error_message = "Can't Create A GL Rendering Context.";
|
||||
*error_message = "Can't create a GL rendering context.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wglMakeCurrent(hDC, hRC)) {
|
||||
*error_message = "Can't activate the GL Rendering Context.";
|
||||
*error_message = "Can't activate the GL rendering context.";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -147,24 +149,23 @@ bool GL_Init(HWND window, std::string *error_message) {
|
||||
|
||||
// GL_VERSION GL_VENDOR GL_RENDERER
|
||||
// "1.4.0 - Build 8.14.10.2364" "intel" intel Pineview Platform
|
||||
I18NCategory *err = GetI18NCategory("Error");
|
||||
|
||||
const char *glver = (const char *)glGetString(GL_VERSION);
|
||||
if (!memcmp(glver, "1.5", 3) ||
|
||||
!memcmp(glver, "1.4", 3) ||
|
||||
!memcmp(glver, "1.3", 3) ||
|
||||
!memcmp(glver, "1.2", 3) ||
|
||||
!memcmp(glver, "1.1", 3) ||
|
||||
!memcmp(glver, "1.0", 3)) {
|
||||
// TODO:
|
||||
const char *text = "Insufficient OpenGL driver support detected!\r\n\r\n"
|
||||
"Your GPU reports that it does not support OpenGL 2.0, which is currently "
|
||||
"required for PPSSPP to run.\r\n\r\n"
|
||||
"Please check that your GPU is compatible with OpenGL 2.0. If it is, you need "
|
||||
"to find and install new graphics drivers from your GPU vendor's website.\r\n\r\n";
|
||||
std::string glVersion = (const char *)glGetString(GL_VERSION);
|
||||
std::string glRenderer = (const char *)glGetString(GL_RENDERER);
|
||||
const std::string openGL_1 = "1.";
|
||||
|
||||
if (glRenderer == "GDI Generic" || glVersion.substr(0, openGL_1.size()) == openGL_1) {
|
||||
const char *defaultError = "Insufficient OpenGL driver support detected!\n\n"
|
||||
"Your GPU reports that it does not support OpenGL 2.0, which is currently required for PPSSPP to run.\n\n"
|
||||
"Please check that your GPU is compatible with OpenGL 2.0.If it is, you need to find and install new graphics drivers from your GPU vendor's website.\n\n"
|
||||
"Visit the forums at http://forums.ppsspp.org for more information.";
|
||||
|
||||
const char *title = "OpenGL driver error";
|
||||
MessageBox(0, ConvertUTF8ToWString(text).c_str(), ConvertUTF8ToWString(title).c_str(), MB_ICONWARNING);
|
||||
std::wstring error = ConvertUTF8ToWString(err->T("InsufficientOpenGLDriver", defaultError));
|
||||
std::wstring title = ConvertUTF8ToWString(err->T("OpenGLDriverError", "OpenGL driver error"));
|
||||
|
||||
MessageBox(hWnd, error.c_str(), title.c_str(), MB_ICONERROR);
|
||||
|
||||
// Avoid further error messages. Let's just bail, it's safe.
|
||||
ExitProcess(0);
|
||||
}
|
||||
@@ -212,13 +213,6 @@ bool GL_Init(HWND window, std::string *error_message) {
|
||||
|
||||
hRC = m_hrc;
|
||||
|
||||
std::string renderer = (const char *)glGetString(GL_RENDERER);
|
||||
if (renderer == "GDI Generic") {
|
||||
// Windows XP, no OpenGL driver installed.
|
||||
*error_message = "PPSSPP requires working OpenGL drivers, version 2.0 or higher.\r\nPlease install the latest drivers for your graphics card (GPU).\r\nSee ppsspp.org/faq.html for more information.";
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
MessageBox(0,ConvertUTF8ToWString((const char *)glGetString(GL_VERSION)).c_str(),0,0);
|
||||
MessageBox(0,ConvertUTF8ToWString((const char *)glGetString(GL_VENDOR)).c_str(),0,0);
|
||||
@@ -236,20 +230,20 @@ bool GL_Init(HWND window, std::string *error_message) {
|
||||
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
||||
}
|
||||
|
||||
GL_Resized(); // Set Up Our Perspective GL Screen
|
||||
GL_Resized(); // Set up our perspective GL screen
|
||||
return true; // Success
|
||||
}
|
||||
|
||||
void GL_Shutdown() {
|
||||
if (hRC) {
|
||||
// Are We Able To Release The DC And RC Contexts?
|
||||
// Are we able to release the DC and RC contexts?
|
||||
if (!wglMakeCurrent(NULL,NULL)) {
|
||||
MessageBox(NULL,L"Release Of DC And RC Failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
MessageBox(NULL,L"Release of DC and RC failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
}
|
||||
|
||||
// Are We Able To Delete The RC?
|
||||
// Are we able to delete the RC?
|
||||
if (!wglDeleteContext(hRC)) {
|
||||
MessageBox(NULL,L"Release Rendering Context Failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
MessageBox(NULL,L"Release rendering context failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
}
|
||||
hRC = NULL;
|
||||
}
|
||||
@@ -257,7 +251,7 @@ void GL_Shutdown() {
|
||||
if (hDC && !ReleaseDC(hWnd,hDC)) {
|
||||
DWORD err = GetLastError();
|
||||
if (err != ERROR_DC_NOT_FOUND) {
|
||||
MessageBox(NULL,L"Release Device Context Failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
MessageBox(NULL,L"Release device context failed.", L"SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
|
||||
}
|
||||
hDC = NULL;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user