mirror of https://github.com/PCSX2/pcsx2.git
purge GLES from GSdx !
mobile will use vulkan (or any new API) anyway
This commit is contained in:
parent
e17ba1c143
commit
335695bd0e
2
build.sh
2
build.sh
|
@ -33,7 +33,6 @@ for ARG in "$@"; do
|
|||
--release ) flags+=(-DCMAKE_BUILD_TYPE=Release) ;;
|
||||
--glsl ) flags+=(-DGLSL_API=TRUE) ;;
|
||||
--egl ) flags+=(-DEGL_API=TRUE) ;;
|
||||
--gles ) flags+=(-DGLES_API=TRUE) ;;
|
||||
--sdl2 ) flags+=(-DSDL2_API=TRUE) ;;
|
||||
--extra ) flags+=(-DEXTRA_PLUGINS=TRUE) ;;
|
||||
--asan ) flags+=(-DUSE_ASAN=TRUE) ;;
|
||||
|
@ -60,7 +59,6 @@ for ARG in "$@"; do
|
|||
echo "--glsl : Replace CG backend of ZZogl by GLSL"
|
||||
echo "--egl : Replace GLX by EGL (ZZogl plugins only)"
|
||||
echo "--sdl2 : Build with SDL2 (crashes if wx is linked to SDL1.2)"
|
||||
echo "--gles : Replace openGL backend of GSdx by openGLES3.1"
|
||||
echo "--cross-multilib: Build a 32bit PCSX2 on a 64bit machine using multilib."
|
||||
echo
|
||||
echo "** Expert Developer option **"
|
||||
|
|
|
@ -27,7 +27,6 @@ option(DISABLE_SVU "Disable superVU (don't use it)")
|
|||
#-------------------------------------------------------------------------------
|
||||
option(GLSL_API "Replace zzogl CG backend by GLSL (experimental option)")
|
||||
option(EGL_API "Use EGL on zzogl (experimental/developer option)")
|
||||
option(GLES_API "Use GLES on GSdx (experimental/developer option)")
|
||||
option(REBUILD_SHADER "Rebuild glsl/cg shader (developer option)")
|
||||
option(BUILD_REPLAY_LOADERS "Build GS replayer to ease testing (developer option)")
|
||||
|
||||
|
|
|
@ -70,7 +70,6 @@ if(Linux)
|
|||
check_lib(AIO aio libaio.h)
|
||||
endif()
|
||||
check_lib(EGL EGL EGL/egl.h)
|
||||
check_lib(GLESV2 GLESv2 GLES3/gl3ext.h) # NOTE: looking for GLESv3, not GLESv2
|
||||
check_lib(PORTAUDIO portaudio portaudio.h pa_linux_alsa.h)
|
||||
check_lib(SOUNDTOUCH SoundTouch soundtouch/SoundTouch.h)
|
||||
|
||||
|
|
|
@ -38,10 +38,6 @@ if(XDG_STD)
|
|||
set(GSdxFinalFlags ${GSdxFinalFlags} -DXDG_STD)
|
||||
endif()
|
||||
|
||||
if(GLES_API AND GLESV2_FOUND)
|
||||
set(GSdxFinalFlags ${GSdxFinalFlags} -DENABLE_GLES)
|
||||
endif()
|
||||
|
||||
#Clang doesn't support a few common flags that GCC does.
|
||||
if(NOT USE_CLANG)
|
||||
set(GSdxFinalFlags ${GSdxFinalFlags} -fabi-version=6)
|
||||
|
@ -199,17 +195,10 @@ set(GSdxFinalLibs
|
|||
${X11_LIBRARIES}
|
||||
)
|
||||
|
||||
if(GLES_API AND GLESV2_FOUND)
|
||||
set(GSdxFinalLibs
|
||||
${GSdxFinalLibs}
|
||||
${GLESV2_LIBRARIES}
|
||||
)
|
||||
else()
|
||||
set(GSdxFinalLibs
|
||||
set(GSdxFinalLibs
|
||||
${GSdxFinalLibs}
|
||||
${OPENGL_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
|
||||
set(GSdxFinalLibs
|
||||
${GSdxFinalLibs}
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "GLLoader.h"
|
||||
#include "GSdx.h"
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
PFNGLACTIVETEXTUREPROC gl_ActiveTexture = NULL;
|
||||
PFNGLBLENDCOLORPROC gl_BlendColor = NULL;
|
||||
PFNGLATTACHSHADERPROC gl_AttachShader = NULL;
|
||||
|
@ -146,8 +145,6 @@ PFNGLCREATEPROGRAMPIPELINESPROC gl_CreateProgramPipelines = NU
|
|||
PFNGLCLIPCONTROLPROC gl_ClipControl = NULL;
|
||||
PFNGLTEXTUREBARRIERPROC gl_TextureBarrier = NULL;
|
||||
|
||||
#endif
|
||||
|
||||
namespace Emulate_DSA {
|
||||
// Texture entry point
|
||||
void APIENTRY BindTextureUnit(GLuint unit, GLuint texture) {
|
||||
|
@ -337,9 +334,6 @@ namespace GLLoader {
|
|||
bool found_GL_ARB_clip_control = false;
|
||||
bool found_GL_ARB_direct_state_access = false;
|
||||
|
||||
// Mandatory for opengl ES (allow to use GL code)
|
||||
bool found_GL_EXT_shader_io_blocks = false;
|
||||
|
||||
// Mandatory
|
||||
bool found_GL_ARB_texture_storage = false;
|
||||
bool found_GL_ARB_shading_language_420pack = false;
|
||||
|
@ -380,9 +374,7 @@ namespace GLLoader {
|
|||
|
||||
const char* vendor = (const char*)glGetString(GL_VENDOR);
|
||||
fprintf(stderr, "Supported Opengl version: %s on GPU: %s. Vendor: %s\n", s, glGetString(GL_RENDERER), vendor);
|
||||
#ifndef ENABLE_GLES
|
||||
fprintf(stderr, "Note: the maximal version supported by GSdx is 3.3 (even if you driver support more)!\n");
|
||||
#endif
|
||||
|
||||
// Name change but driver is still bad!
|
||||
if (strstr(vendor, "ATI") || strstr(vendor, "Advanced Micro Devices"))
|
||||
|
@ -403,7 +395,6 @@ namespace GLLoader {
|
|||
GLuint major_gl = s[dot-1]-'0';
|
||||
GLuint minor_gl = s[dot+1]-'0';
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
if (mesa_amd_buggy_driver || intel_buggy_driver) {
|
||||
fprintf(stderr, "Buggy driver detected. Geometry shaders will be disabled\n");
|
||||
found_geometry_shader = false;
|
||||
|
@ -412,15 +403,10 @@ namespace GLLoader {
|
|||
found_geometry_shader = !!theApp.GetConfig("override_geometry_shader", -1);
|
||||
fprintf(stderr, "Override geometry shaders detection\n");
|
||||
}
|
||||
#else
|
||||
found_geometry_shader = false;
|
||||
#endif
|
||||
#ifndef ENABLE_GLES
|
||||
if ( (major_gl < major) || ( major_gl == major && minor_gl < minor ) ) {
|
||||
fprintf(stderr, "OPENGL %d.%d is not supported\n", major, minor);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -432,7 +418,6 @@ namespace GLLoader {
|
|||
if (gl_GetStringi && max_ext) {
|
||||
for (GLint i = 0; i < max_ext; i++) {
|
||||
string ext((const char*)gl_GetStringi(GL_EXTENSIONS, i));
|
||||
#ifndef ENABLE_GLES
|
||||
// GL4.0
|
||||
if (ext.compare("GL_ARB_gpu_shader5") == 0) found_GL_ARB_gpu_shader5 = true;
|
||||
// GL4.1
|
||||
|
@ -470,9 +455,6 @@ namespace GLLoader {
|
|||
if (ext.compare("GL_ARB_direct_state_access") == 0) found_GL_ARB_direct_state_access = true;
|
||||
if (ext.compare("GL_ARB_clip_control") == 0) found_GL_ARB_clip_control = true;
|
||||
if (ext.compare("GL_ARB_texture_barrier") == 0) found_GL_ARB_texture_barrier = true;
|
||||
#else // ENABLE_GLES
|
||||
if (ext.compare("GL_EXT_shader_io_blocks") == 0) found_GL_EXT_shader_io_blocks = true;
|
||||
#endif
|
||||
|
||||
//fprintf(stderr, "DEBUG ext: %s\n", ext.c_str());
|
||||
}
|
||||
|
@ -481,7 +463,6 @@ namespace GLLoader {
|
|||
bool status = true;
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
// GL4.0
|
||||
status &= status_and_override(found_GL_ARB_gpu_shader5,"GL_ARB_gpu_shader5");
|
||||
// GL4.1
|
||||
|
@ -501,9 +482,7 @@ namespace GLLoader {
|
|||
status &= status_and_override(found_GL_ARB_clip_control, "GL_ARB_clip_control");
|
||||
status &= status_and_override(found_GL_ARB_direct_state_access, "GL_ARB_direct_state_access");
|
||||
status &= status_and_override(found_GL_ARB_texture_barrier, "GL_ARB_texture_barrier");
|
||||
#else // ENABLE_GLES
|
||||
status &= status_and_override(found_GL_EXT_shader_io_blocks, "GL_EXT_shader_io_blocks", true);
|
||||
#endif
|
||||
|
||||
if (!found_GL_ARB_direct_state_access) {
|
||||
Emulate_DSA::Init();
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#define GL_FB_DEFAULT (0)
|
||||
#define GL_BUFFER_0 (0)
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
// FIX compilation issue with Mesa 10
|
||||
// Note it might be possible to do better with the right include
|
||||
// in the rigth order but I don't have time
|
||||
|
@ -207,10 +206,6 @@ typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level,
|
|||
#endif /* GL_VERSION_4_5 */
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
extern PFNGLACTIVETEXTUREPROC gl_ActiveTexture;
|
||||
extern PFNGLBLENDCOLORPROC gl_BlendColor;
|
||||
extern PFNGLATTACHSHADERPROC gl_AttachShader;
|
||||
|
@ -334,79 +329,6 @@ extern PFNGLCREATEPROGRAMPIPELINESPROC gl_CreateProgramPipelines;
|
|||
extern PFNGLCLIPCONTROLPROC gl_ClipControl;
|
||||
extern PFNGLTEXTUREBARRIERPROC gl_TextureBarrier;
|
||||
|
||||
#else
|
||||
#define gl_ActiveTexture glActiveTexture
|
||||
#define gl_BlendColor glBlendColor
|
||||
#define gl_AttachShader glAttachShader
|
||||
#define gl_BindBuffer glBindBuffer
|
||||
#define gl_BindBufferBase glBindBufferBase
|
||||
#define gl_BindFramebuffer glBindFramebuffer
|
||||
#define gl_BindSampler glBindSampler
|
||||
#define gl_BindVertexArray glBindVertexArray
|
||||
#define gl_BlendEquationSeparate glBlendEquationSeparate
|
||||
#define gl_BlendFuncSeparate glBlendFuncSeparate
|
||||
#define gl_BlitFramebuffer glBlitFramebuffer
|
||||
#define gl_BufferData glBufferData
|
||||
#define gl_CheckFramebufferStatus glCheckFramebufferStatus
|
||||
#define gl_ClearBufferfv glClearBufferfv
|
||||
#define gl_ClearBufferiv glClearBufferiv
|
||||
#define gl_ClearBufferuiv glClearBufferuiv
|
||||
#define gl_CompileShader glCompileShader
|
||||
#define gl_ColorMask glColorMask
|
||||
#define gl_CreateProgram glCreateProgram
|
||||
#define gl_CreateShader glCreateShader
|
||||
#define gl_CreateShaderProgramv glCreateShaderProgramv
|
||||
#define gl_DeleteBuffers glDeleteBuffers
|
||||
#define gl_DeleteFramebuffers glDeleteFramebuffers
|
||||
#define gl_DeleteProgram glDeleteProgram
|
||||
#define gl_DeleteSamplers glDeleteSamplers
|
||||
#define gl_DeleteShader glDeleteShader
|
||||
#define gl_DeleteVertexArrays glDeleteVertexArrays
|
||||
#define gl_DetachShader glDetachShader
|
||||
#define gl_DrawBuffers glDrawBuffers
|
||||
#define gl_DrawElementsBaseVertex glDrawElementsBaseVertex
|
||||
#define gl_EnableVertexAttribArray glEnableVertexAttribArray
|
||||
#define gl_FramebufferRenderbuffer glFramebufferRenderbuffer
|
||||
#define gl_FramebufferTexture2D glFramebufferTexture2D
|
||||
#define gl_GenBuffers glGenBuffers
|
||||
#define gl_GenFramebuffers glGenFramebuffers
|
||||
#define gl_GenSamplers glGenSamplers
|
||||
#define gl_GenVertexArrays glGenVertexArrays
|
||||
#define gl_GetBufferParameteriv glGetBufferParameteriv
|
||||
#define gl_GetDebugMessageLogARB glGetDebugMessageLogARB
|
||||
#define gl_GetProgramInfoLog glGetProgramInfoLog
|
||||
#define gl_GetProgramiv glGetProgramiv
|
||||
#define gl_GetShaderiv glGetShaderiv
|
||||
#define gl_GetStringi glGetStringi
|
||||
#define gl_IsFramebuffer glIsFramebuffer
|
||||
#define gl_LinkProgram glLinkProgram
|
||||
#define gl_MapBuffer glMapBuffer
|
||||
#define gl_MapBufferRange glMapBufferRange
|
||||
#define gl_ProgramParameteri glProgramParameteri
|
||||
#define gl_SamplerParameterf glSamplerParameterf
|
||||
#define gl_SamplerParameteri glSamplerParameteri
|
||||
#define gl_ShaderSource glShaderSource
|
||||
#define gl_Uniform1i glUniform1i
|
||||
#define gl_UnmapBuffer glUnmapBuffer
|
||||
#define gl_UseProgramStages glUseProgramStages
|
||||
#define gl_VertexAttribIPointer glVertexAttribIPointer
|
||||
#define gl_VertexAttribPointer glVertexAttribPointer
|
||||
#define gl_TexStorage2D glTexStorage2D
|
||||
#define gl_BufferSubData glBufferSubData
|
||||
|
||||
#define gl_BindProgramPipeline glBindProgramPipeline
|
||||
#define gl_DeleteProgramPipelines glDeleteProgramPipelines
|
||||
#define gl_GenProgramPipelines glGenProgramPipelines
|
||||
#define gl_GetProgramPipelineiv glGetProgramPipelineiv
|
||||
#define gl_ValidateProgramPipeline glValidateProgramPipeline
|
||||
#define gl_GetProgramPipelineInfoLog glGetProgramPipelineInfoLog
|
||||
|
||||
#define gl_UseProgram glUseProgram
|
||||
#define gl_GetShaderInfoLog glGetShaderInfoLog
|
||||
#define gl_ProgramUniform1i glProgramUniform1i
|
||||
|
||||
#endif
|
||||
|
||||
namespace Emulate_DSA {
|
||||
extern void SetFramebufferTarget(GLenum target);
|
||||
extern void SetBufferTarget(GLenum target);
|
||||
|
|
|
@ -290,12 +290,8 @@ static int _GSopen(void** dsp, char* title, int renderer, int threads = -1)
|
|||
s_gs->m_wnd = new GSWndDX();
|
||||
break;
|
||||
}
|
||||
#else
|
||||
#ifdef ENABLE_GLES
|
||||
wnd[0] = NULL;
|
||||
#else
|
||||
wnd[0] = new GSWndOGL();
|
||||
#endif
|
||||
wnd[1] = new GSWndEGL();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -182,11 +182,9 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
// ****************************************************************
|
||||
// Debug helper
|
||||
// ****************************************************************
|
||||
#ifndef ENABLE_GLES
|
||||
#ifdef ENABLE_OGL_DEBUG
|
||||
gl_DebugMessageCallback((GLDEBUGPROC)DebugOutputToFile, NULL);
|
||||
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ****************************************************************
|
||||
|
@ -277,16 +275,10 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
// ****************************************************************
|
||||
// rasterization configuration
|
||||
// ****************************************************************
|
||||
#ifndef ENABLE_GLES
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
// FIXME enable it when multisample code will be here
|
||||
// DX: rd.MultisampleEnable = true;
|
||||
#ifndef ENABLE_GLES
|
||||
glDisable(GL_MULTISAMPLE);
|
||||
#endif
|
||||
#ifdef ONLY_LINES
|
||||
glLineWidth(5.0);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
@ -321,12 +313,10 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
// because of -1 we loose lot of precision for small GS value
|
||||
// This extension allow FS depth to range from -1 to 1. So
|
||||
// gl_position.z could range from [0, 1]
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_clip_control) {
|
||||
// Change depth convention
|
||||
gl_ClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE);
|
||||
}
|
||||
#endif
|
||||
|
||||
// ****************************************************************
|
||||
// HW renderer shader
|
||||
|
@ -560,9 +550,7 @@ void GSDeviceOGL::InitPrimDateTexture(GSTexture* rt)
|
|||
|
||||
ClearRenderTarget_ui(m_date.t, 0x0FFFFFFF);
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
gl_BindImageTexture(2, static_cast<GSTextureOGL*>(m_date.t)->GetID(), 0, false, 0, GL_READ_WRITE, GL_R32I);
|
||||
#endif
|
||||
}
|
||||
|
||||
void GSDeviceOGL::RecycleDateTexture()
|
||||
|
@ -578,9 +566,7 @@ void GSDeviceOGL::RecycleDateTexture()
|
|||
|
||||
void GSDeviceOGL::Barrier(GLbitfield b)
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
gl_MemoryBarrier(b);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Note: must be here because tfx_glsl is static */
|
||||
|
@ -604,11 +590,7 @@ GLuint GSDeviceOGL::CompileGS()
|
|||
int unscale_sprite = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_UnscaleSprite", 0) : 0;
|
||||
std::string macro = format("#define GS_SPRITE %d\n", unscale_sprite);
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
return 0;
|
||||
#else
|
||||
return m_shader->Compile("tfx_vgs.glsl", "gs_main", GL_GEOMETRY_SHADER, tfx_vgs_glsl, macro);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Note: must be here because tfx_glsl is static */
|
||||
|
@ -686,13 +668,11 @@ void GSDeviceOGL::CopyRect(GSTexture* st, GSTexture* dt, const GSVector4i& r)
|
|||
ASSERT(st && dt);
|
||||
|
||||
if (GLLoader::found_GL_ARB_copy_image) {
|
||||
#ifndef ENABLE_GLES
|
||||
gl_CopyImageSubData( static_cast<GSTextureOGL*>(st)->GetID(), GL_TEXTURE_2D,
|
||||
0, r.x, r.y, 0,
|
||||
static_cast<GSTextureOGL*>(dt)->GetID(), GL_TEXTURE_2D,
|
||||
0, r.x, r.y, 0,
|
||||
r.width(), r.height(), 1);
|
||||
#endif
|
||||
} else {
|
||||
|
||||
GSTextureOGL* st_ogl = (GSTextureOGL*) st;
|
||||
|
@ -1113,7 +1093,6 @@ void GSDeviceOGL::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVecto
|
|||
|
||||
void GSDeviceOGL::CheckDebugLog()
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
unsigned int count = 16; // max. num. of messages that will be read from the log
|
||||
int bufsize = 2048;
|
||||
unsigned int sources[16] = {};
|
||||
|
@ -1136,13 +1115,11 @@ void GSDeviceOGL::CheckDebugLog()
|
|||
}
|
||||
|
||||
delete[] messageLog;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Note: used as a callback of DebugMessageCallback. Don't change the signature
|
||||
void GSDeviceOGL::DebugOutputToFile(GLenum gl_source, GLenum gl_type, GLuint id, GLenum gl_severity, GLsizei gl_length, const GLchar *gl_message, const void* userParam)
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
std::string message(gl_message, gl_length);
|
||||
std::string type, severity, source;
|
||||
static int sev_counter = 0;
|
||||
|
@ -1182,7 +1159,6 @@ void GSDeviceOGL::DebugOutputToFile(GLenum gl_source, GLenum gl_type, GLuint id,
|
|||
fclose(f);
|
||||
}
|
||||
ASSERT(sev_counter < 5);
|
||||
#endif
|
||||
}
|
||||
|
||||
// (A - B) * C + D
|
||||
|
@ -1212,13 +1188,8 @@ void GSDeviceOGL::DebugOutputToFile(GLenum gl_source, GLenum gl_type, GLuint id,
|
|||
#define D3DBLEND_BLENDFACTOR GL_CONSTANT_COLOR
|
||||
#define D3DBLEND_INVBLENDFACTOR GL_ONE_MINUS_CONSTANT_COLOR
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
#define D3DBLEND_SRCALPHA GL_SRC_ALPHA
|
||||
#define D3DBLEND_INVSRCALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||
#else
|
||||
#define D3DBLEND_SRCALPHA GL_SRC1_ALPHA
|
||||
#define D3DBLEND_INVSRCALPHA GL_ONE_MINUS_SRC1_ALPHA
|
||||
#endif
|
||||
|
||||
const GSDeviceOGL::D3D9Blend GSDeviceOGL::m_blendMapD3D9[3*3*3*3] =
|
||||
{
|
||||
|
|
|
@ -107,11 +107,7 @@ public:
|
|||
GLState::b_msk = m_b_msk;
|
||||
GLState::a_msk = m_a_msk;
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
gl_ColorMask(m_r_msk, m_g_msk, m_b_msk, m_a_msk);
|
||||
#else
|
||||
gl_ColorMaski(0, m_r_msk, m_g_msk, m_b_msk, m_a_msk);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,11 +134,7 @@ public:
|
|||
if (GLState::eq_RGB != m_equation_RGB || GLState::eq_A != m_equation_A) {
|
||||
GLState::eq_RGB = m_equation_RGB;
|
||||
GLState::eq_A = m_equation_A;
|
||||
#ifdef ENABLE_GLES
|
||||
gl_BlendEquationSeparate(m_equation_RGB, m_equation_A);
|
||||
#else
|
||||
gl_BlendEquationSeparateiARB(0, m_equation_RGB, m_equation_A);
|
||||
#endif
|
||||
}
|
||||
// FIXME align then SSE
|
||||
if (GLState::f_sRGB != m_func_sRGB || GLState::f_dRGB != m_func_dRGB || GLState::f_sA != m_func_sA || GLState::f_dA != m_func_dA) {
|
||||
|
@ -150,11 +142,7 @@ public:
|
|||
GLState::f_dRGB = m_func_dRGB;
|
||||
GLState::f_sA = m_func_sA;
|
||||
GLState::f_dA = m_func_dA;
|
||||
#ifdef ENABLE_GLES
|
||||
gl_BlendFuncSeparate(m_func_sRGB, m_func_dRGB, m_func_sA, m_func_dA);
|
||||
#else
|
||||
gl_BlendFuncSeparateiARB(0, m_func_sRGB, m_func_dRGB, m_func_sA, m_func_dA);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,10 +44,6 @@ bool GSRendererOGL::CreateDevice(GSDevice* dev)
|
|||
if(!GSRenderer::CreateDevice(dev))
|
||||
return false;
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
fprintf(stderr, "FIXME Creation of FBA dss/bs state is not yet implemented\n");
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -558,10 +554,8 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
|
|||
dev->SetupPS(ps_sel);
|
||||
|
||||
// Be sure that first pass is finished !
|
||||
#ifndef ENABLE_GLES
|
||||
if (!UserHacks_DateGL4)
|
||||
dev->Barrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
|
||||
#endif
|
||||
}
|
||||
|
||||
dev->OMSetRenderTargets(rt, ds, &scissor);
|
||||
|
@ -648,9 +642,4 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
|
|||
|
||||
void GSRendererOGL::UpdateFBA(GSTexture* rt)
|
||||
{
|
||||
#ifdef ENABLE_GLES
|
||||
#ifdef _DEBUG
|
||||
fprintf(stderr, "FIXME UpdateFBA not yet implemented\n");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -33,20 +33,16 @@ GSShaderOGL::GSShaderOGL(bool debug) :
|
|||
memset(&m_ps_sub, 0, countof(m_ps_sub)*sizeof(m_ps_sub[0]));
|
||||
|
||||
m_single_prog.clear();
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects) {
|
||||
gl_GenProgramPipelines(1, &m_pipeline);
|
||||
gl_BindProgramPipeline(m_pipeline);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
GSShaderOGL::~GSShaderOGL()
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects)
|
||||
gl_DeleteProgramPipelines(1, &m_pipeline);
|
||||
#endif
|
||||
|
||||
for (auto it = m_single_prog.begin(); it != m_single_prog.end() ; it++) gl_DeleteProgram(it->second);
|
||||
m_single_prog.clear();
|
||||
|
@ -61,10 +57,8 @@ void GSShaderOGL::VS(GLuint s, GLuint sub_count)
|
|||
GLState::vs = s;
|
||||
GLState::dirty_prog = true;
|
||||
GLState::dirty_subroutine_vs = true;
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects)
|
||||
gl_UseProgramStages(m_pipeline, GL_VERTEX_SHADER_BIT, s);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,11 +105,9 @@ void GSShaderOGL::PS(GLuint s, GLuint sub_count)
|
|||
GLState::dirty_prog = true;
|
||||
GLState::dirty_subroutine_ps = true;
|
||||
GLState::dirty_ressources = true;
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects) {
|
||||
gl_UseProgramStages(m_pipeline, GL_FRAGMENT_SHADER_BIT, s);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -125,16 +117,13 @@ void GSShaderOGL::GS(GLuint s)
|
|||
{
|
||||
GLState::gs = s;
|
||||
GLState::dirty_prog = true;
|
||||
#ifndef ENABLE_GLES
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects)
|
||||
gl_UseProgramStages(m_pipeline, GL_GEOMETRY_SHADER_BIT, s);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void GSShaderOGL::SetupRessources()
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
if (!GLLoader::found_GL_ARB_bindless_texture) return;
|
||||
|
||||
if (GLState::dirty_ressources) {
|
||||
|
@ -149,12 +138,10 @@ void GSShaderOGL::SetupRessources()
|
|||
gl_UniformHandleui64vARB(1, 1, &GLState::tex_handle[1]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void GSShaderOGL::SetupSubroutineUniform()
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
if (!GLLoader::found_GL_ARB_shader_subroutine) return;
|
||||
|
||||
if (GLState::dirty_subroutine_vs && m_vs_sub_count) {
|
||||
|
@ -166,7 +153,6 @@ void GSShaderOGL::SetupSubroutineUniform()
|
|||
gl_UniformSubroutinesuiv(GL_FRAGMENT_SHADER, m_ps_sub_count, m_ps_sub);
|
||||
GLState::dirty_subroutine_ps = false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GSShaderOGL::ValidateShader(GLuint s)
|
||||
|
@ -213,7 +199,6 @@ bool GSShaderOGL::ValidateProgram(GLuint p)
|
|||
|
||||
bool GSShaderOGL::ValidatePipeline(GLuint p)
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
if (!m_debug_shader) return true;
|
||||
|
||||
// FIXME: might be mandatory to validate the pipeline
|
||||
|
@ -233,8 +218,6 @@ bool GSShaderOGL::ValidatePipeline(GLuint p)
|
|||
}
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -298,7 +281,6 @@ void GSShaderOGL::UseProgram()
|
|||
std::string GSShaderOGL::GenGlslHeader(const std::string& entry, GLenum type, const std::string& macro)
|
||||
{
|
||||
std::string header;
|
||||
#ifndef ENABLE_GLES
|
||||
header = "#version 330 core\n";
|
||||
// Need GL version 420
|
||||
header += "#extension GL_ARB_shading_language_420pack: require\n";
|
||||
|
@ -329,34 +311,21 @@ std::string GSShaderOGL::GenGlslHeader(const std::string& entry, GLenum type, co
|
|||
if (GLLoader::found_GL_ARB_clip_control) {
|
||||
header += "#define ZERO_TO_ONE_DEPTH\n";
|
||||
}
|
||||
#else // ENABLE_GLES
|
||||
header = "#version 310 es\n";
|
||||
header += "#extension GL_EXT_shader_io_blocks: require\n";
|
||||
// Disable full GL features (actually GLES3.1 could support it)
|
||||
header += "#define DISABLE_GL42_image\n";
|
||||
#endif
|
||||
|
||||
// Stupid GL implementation (can't use GL_ES)
|
||||
// AMD/nvidia define it to 0
|
||||
// intel window don't define it
|
||||
// intel linux refuse to define it
|
||||
#ifdef ENABLE_GLES
|
||||
header += "#define pGL_ES 1\n";
|
||||
header += "precision highp float;\n";
|
||||
#else
|
||||
header += "#define pGL_ES 0\n";
|
||||
#endif
|
||||
|
||||
// Allow to puts several shader in 1 files
|
||||
switch (type) {
|
||||
case GL_VERTEX_SHADER:
|
||||
header += "#define VERTEX_SHADER 1\n";
|
||||
break;
|
||||
#ifndef ENABLE_GLES
|
||||
case GL_GEOMETRY_SHADER:
|
||||
header += "#define GEOMETRY_SHADER 1\n";
|
||||
break;
|
||||
#endif
|
||||
case GL_FRAGMENT_SHADER:
|
||||
header += "#define FRAGMENT_SHADER 1\n";
|
||||
break;
|
||||
|
@ -377,11 +346,9 @@ GLuint GSShaderOGL::Compile(const std::string& glsl_file, const std::string& ent
|
|||
|
||||
GLuint program = 0;
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
if (type == GL_GEOMETRY_SHADER && !GLLoader::found_geometry_shader) {
|
||||
return program;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Note it is better to separate header and source file to have the good line number
|
||||
// in the glsl compiler report
|
||||
|
@ -398,9 +365,7 @@ GLuint GSShaderOGL::Compile(const std::string& glsl_file, const std::string& ent
|
|||
#endif
|
||||
|
||||
if (GLLoader::found_GL_ARB_separate_shader_objects) {
|
||||
#ifndef ENABLE_GLES
|
||||
program = gl_CreateShaderProgramv(type, shader_nb, sources);
|
||||
#endif
|
||||
} else {
|
||||
program = gl_CreateShader(type);
|
||||
gl_ShaderSource(program, shader_nb, sources, NULL);
|
||||
|
|
|
@ -41,7 +41,6 @@ namespace PboPool {
|
|||
const uint32 m_pbo_size = 4*1024*1024;
|
||||
uint8* m_gpu_texture;
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
// Option for buffer storage
|
||||
// Note there is a barrier (but maybe coherent is faster)
|
||||
// XXX: actually does I really need coherent and barrier???
|
||||
|
@ -50,7 +49,6 @@ namespace PboPool {
|
|||
const GLbitfield common_flags = GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT;
|
||||
const GLbitfield map_flags = common_flags | GL_MAP_FLUSH_EXPLICIT_BIT;
|
||||
const GLbitfield create_flags = common_flags | GL_CLIENT_STORAGE_BIT;
|
||||
#endif
|
||||
|
||||
void Init() {
|
||||
gl_GenBuffers(countof(m_pool), m_pool);
|
||||
|
@ -60,10 +58,8 @@ namespace PboPool {
|
|||
BindPbo();
|
||||
|
||||
if (m_texture_storage) {
|
||||
#ifndef ENABLE_GLES
|
||||
gl_BufferStorage(GL_PIXEL_UNPACK_BUFFER, m_pbo_size, NULL, create_flags);
|
||||
m_map[m_current_pbo] = (char*)gl_MapBufferRange(GL_PIXEL_UNPACK_BUFFER, 0, m_pbo_size, map_flags);
|
||||
#endif
|
||||
} else {
|
||||
gl_BufferData(GL_PIXEL_UNPACK_BUFFER, m_pbo_size, NULL, GL_STREAM_COPY);
|
||||
m_map[m_current_pbo] = NULL;
|
||||
|
@ -343,12 +339,10 @@ bool GSTextureOGL::Update(const GSVector4i& r, const void* data, int pitch)
|
|||
GLuint64 GSTextureOGL::GetHandle(GLuint sampler_id)
|
||||
{
|
||||
ASSERT(sampler_id < 12);
|
||||
#ifndef ENABLE_GLES
|
||||
if (!m_handles[sampler_id]) {
|
||||
m_handles[sampler_id] = gl_GetTextureSamplerHandleARB(m_texture_id, sampler_id);
|
||||
gl_MakeTextureHandleResidentARB(m_handles[sampler_id]);
|
||||
}
|
||||
#endif
|
||||
|
||||
return m_handles[sampler_id];
|
||||
}
|
||||
|
@ -604,10 +598,8 @@ bool GSTextureOGL::Save(const string& fn, bool dds)
|
|||
|
||||
gl_BindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
||||
} else if(m_format == GL_R32I) {
|
||||
#ifndef ENABLE_GLES
|
||||
gl_GetTextureImage(m_texture_id, 0, GL_RED_INTEGER, GL_INT, buf_size, image);
|
||||
SaveRaw(fn, image, pitch);
|
||||
#endif
|
||||
|
||||
// Not supported in Save function
|
||||
status = false;
|
||||
|
|
|
@ -67,7 +67,6 @@ class GSBufferOGL {
|
|||
|
||||
// TODO: if we do manually the synchronization, I'm not sure size is important. It worths to investigate it.
|
||||
// => bigger buffer => less sync
|
||||
#ifndef ENABLE_GLES
|
||||
bind();
|
||||
// coherency will be done by flushing
|
||||
const GLbitfield common_flags = GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT;
|
||||
|
@ -80,7 +79,6 @@ class GSBufferOGL {
|
|||
fprintf(stderr, "Failed to map buffer\n");
|
||||
throw GSDXError();
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
m_buffer_ptr = NULL;
|
||||
}
|
||||
|
@ -201,21 +199,8 @@ class GSBufferOGL {
|
|||
gl_FlushMappedBufferRange(m_target, offset, length);
|
||||
}
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
void upload(const void* src, uint32 count, uint32 basevertex = 0)
|
||||
#else
|
||||
void upload(const void* src, uint32 count)
|
||||
#endif
|
||||
{
|
||||
#ifdef ENABLE_GLES
|
||||
// Emulate gl_DrawElementsBaseVertex... Maybe GLES 4 you know!
|
||||
if (basevertex) {
|
||||
uint32* data = (uint32*) src;
|
||||
for (uint32 i = 0; i < count; i++) {
|
||||
data[i] += basevertex;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef ENABLE_OGL_DEBUG_MEM_BW
|
||||
g_vertex_upload_byte += count*m_stride;
|
||||
#endif
|
||||
|
@ -242,20 +227,12 @@ class GSBufferOGL {
|
|||
|
||||
void Draw(GLenum mode, GLint basevertex)
|
||||
{
|
||||
#ifdef ENABLE_GLES
|
||||
glDrawElements(mode, m_count, GL_UNSIGNED_INT, (void*)(m_start * m_stride));
|
||||
#else
|
||||
gl_DrawElementsBaseVertex(mode, m_count, GL_UNSIGNED_INT, (void*)(m_start * m_stride), basevertex);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Draw(GLenum mode, GLint basevertex, int offset, int count)
|
||||
{
|
||||
#ifdef ENABLE_GLES
|
||||
glDrawElements(mode, count, GL_UNSIGNED_INT, (void*)((m_start + offset) * m_stride));
|
||||
#else
|
||||
gl_DrawElementsBaseVertex(mode, count, GL_UNSIGNED_INT, (void*)((m_start + offset) * m_stride), basevertex);
|
||||
#endif
|
||||
}
|
||||
|
||||
size_t GetStart() { return m_start; }
|
||||
|
@ -338,11 +315,7 @@ public:
|
|||
void UploadVB(const void* vertices, size_t count) { m_vb->upload(vertices, count); }
|
||||
|
||||
void UploadIB(const void* index, size_t count) {
|
||||
#ifdef ENABLE_GLES
|
||||
m_ib->upload(index, count, m_vb->GetStart());
|
||||
#else
|
||||
m_ib->upload(index, count);
|
||||
#endif
|
||||
}
|
||||
|
||||
~GSVertexBufferStateOGL()
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
void GSWndGL::PopulateGlFunction()
|
||||
{
|
||||
#ifndef ENABLE_GLES
|
||||
*(void**)&(gl_ActiveTexture) = GetProcAddress("glActiveTexture");
|
||||
*(void**)&(gl_BlendColor) = GetProcAddress("glBlendColor");
|
||||
*(void**)&(gl_AttachShader) = GetProcAddress("glAttachShader");
|
||||
|
@ -152,6 +151,4 @@ void GSWndGL::PopulateGlFunction()
|
|||
if (gl_CreateFramebuffers == NULL) {
|
||||
Emulate_DSA::Init();
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -37,12 +37,10 @@ void GSWndEGL::CreateContext(int major, int minor)
|
|||
{
|
||||
EGL_CONTEXT_MAJOR_VERSION_KHR, major,
|
||||
EGL_CONTEXT_MINOR_VERSION_KHR, minor,
|
||||
#ifndef ENABLE_GLES
|
||||
#ifdef ENABLE_OGL_DEBUG
|
||||
EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR,
|
||||
#endif
|
||||
EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR,
|
||||
#endif
|
||||
EGL_NONE
|
||||
};
|
||||
EGLint NullContextAttribs[] = { EGL_NONE };
|
||||
|
@ -51,15 +49,11 @@ void GSWndEGL::CreateContext(int major, int minor)
|
|||
EGL_GREEN_SIZE, 8,
|
||||
EGL_BLUE_SIZE, 8,
|
||||
EGL_DEPTH_SIZE, 24,
|
||||
#ifndef ENABLE_GLES
|
||||
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
|
||||
#endif
|
||||
EGL_NONE
|
||||
};
|
||||
|
||||
#ifndef ENABLE_GLES
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
#endif
|
||||
|
||||
eglChooseConfig(m_eglDisplay, attrList, &eglConfig, 1, &numConfigs);
|
||||
if ( numConfigs == 0 )
|
||||
|
@ -102,9 +96,7 @@ void GSWndEGL::AttachContext()
|
|||
if (!IsContextAttached()) {
|
||||
// The setting of the API is local to a thread. This function
|
||||
// can be called from 2 threads.
|
||||
#ifndef ENABLE_GLES
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
#endif
|
||||
|
||||
//fprintf(stderr, "Attach the context\n");
|
||||
eglMakeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext);
|
||||
|
@ -135,12 +127,7 @@ bool GSWndEGL::Attach(void* handle, bool managed)
|
|||
m_NativeDisplay = XOpenDisplay(NULL);
|
||||
OpenEGLDisplay();
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
// FIXME: update it to GLES 3.1 when they support it
|
||||
CreateContext(3, 1);
|
||||
#else
|
||||
CreateContext(3, 3);
|
||||
#endif
|
||||
|
||||
AttachContext();
|
||||
|
||||
|
@ -187,12 +174,7 @@ bool GSWndEGL::Create(const string& title, int w, int h)
|
|||
m_NativeWindow = XCreateSimpleWindow(m_NativeDisplay, DefaultRootWindow(m_NativeDisplay), 0, 0, w, h, 0, 0, 0);
|
||||
XMapWindow (m_NativeDisplay, m_NativeWindow);
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
// FIXME: update it to GLES 3.1 when they support it
|
||||
CreateContext(3, 1);
|
||||
#else
|
||||
CreateContext(3, 3);
|
||||
#endif
|
||||
|
||||
AttachContext();
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "stdafx.h"
|
||||
#include "GSWndOGL.h"
|
||||
|
||||
#if defined(__linux__) && !defined(ENABLE_GLES)
|
||||
#if defined(__linux__)
|
||||
GSWndOGL::GSWndOGL()
|
||||
: m_NativeWindow(0), m_NativeDisplay(NULL), m_swapinterval(NULL)
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "GSWnd.h"
|
||||
|
||||
#if defined(__linux__) && !defined(ENABLE_GLES)
|
||||
#if defined(__linux__)
|
||||
#include <X11/Xlib.h>
|
||||
#include <GL/glx.h>
|
||||
|
||||
|
|
|
@ -60,12 +60,8 @@ in SHADER
|
|||
#define PSin_fc (PSin.fc)
|
||||
|
||||
// Same buffer but 2 colors for dual source blending
|
||||
#if pGL_ES
|
||||
layout(location = 0) out vec4 SV_Target0;
|
||||
#else
|
||||
layout(location = 0, index = 0) out vec4 SV_Target0;
|
||||
layout(location = 0, index = 1) out vec4 SV_Target1;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_BINDLESS_TEX
|
||||
layout(bindless_sampler, location = 0) uniform sampler2D TextureSampler;
|
||||
|
@ -423,16 +419,6 @@ vec4 ps_color()
|
|||
return c;
|
||||
}
|
||||
|
||||
#if pGL_ES
|
||||
void ps_main()
|
||||
{
|
||||
vec4 c = ps_color();
|
||||
c.a *= 2.0;
|
||||
SV_Target0 = c;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !pGL_ES
|
||||
void ps_main()
|
||||
{
|
||||
#if (PS_DATE & 3) == 1 && !defined(DISABLE_GL42_image)
|
||||
|
@ -511,6 +497,5 @@ void ps_main()
|
|||
#endif
|
||||
|
||||
}
|
||||
#endif // !pGL_ES
|
||||
|
||||
#endif
|
||||
|
|
|
@ -801,12 +801,8 @@ static const char* tfx_fs_all_glsl =
|
|||
"#define PSin_fc (PSin.fc)\n"
|
||||
"\n"
|
||||
"// Same buffer but 2 colors for dual source blending\n"
|
||||
"#if pGL_ES\n"
|
||||
"layout(location = 0) out vec4 SV_Target0;\n"
|
||||
"#else\n"
|
||||
"layout(location = 0, index = 0) out vec4 SV_Target0;\n"
|
||||
"layout(location = 0, index = 1) out vec4 SV_Target1;\n"
|
||||
"#endif\n"
|
||||
"\n"
|
||||
"#ifdef ENABLE_BINDLESS_TEX\n"
|
||||
"layout(bindless_sampler, location = 0) uniform sampler2D TextureSampler;\n"
|
||||
|
@ -1164,16 +1160,6 @@ static const char* tfx_fs_all_glsl =
|
|||
" return c;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"#if pGL_ES\n"
|
||||
"void ps_main()\n"
|
||||
"{\n"
|
||||
" vec4 c = ps_color();\n"
|
||||
" c.a *= 2.0;\n"
|
||||
" SV_Target0 = c;\n"
|
||||
"}\n"
|
||||
"#endif\n"
|
||||
"\n"
|
||||
"#if !pGL_ES\n"
|
||||
"void ps_main()\n"
|
||||
"{\n"
|
||||
"#if (PS_DATE & 3) == 1 && !defined(DISABLE_GL42_image)\n"
|
||||
|
@ -1252,7 +1238,6 @@ static const char* tfx_fs_all_glsl =
|
|||
"#endif\n"
|
||||
"\n"
|
||||
"}\n"
|
||||
"#endif // !pGL_ES\n"
|
||||
"\n"
|
||||
"#endif\n"
|
||||
"//#version 420 // Keep it for text editor detection\n"
|
||||
|
|
|
@ -192,14 +192,9 @@ using namespace std;
|
|||
//#include <ext/hash_map>
|
||||
//#include <ext/hash_set>
|
||||
|
||||
#ifdef ENABLE_GLES
|
||||
#include <GLES3/gl3.h>
|
||||
#include <GLES3/gl3ext.h>
|
||||
#else
|
||||
// Note use GL/glcorearb.h on the future
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glext.h>
|
||||
#endif
|
||||
#include "GLLoader.h"
|
||||
|
||||
//using namespace __gnu_cxx;
|
||||
|
|
Loading…
Reference in New Issue