Merge pull request #1603 from reicast/fh/gles-dynload
Fix build errors on GL ES 2.0 platforms (RPi...)
This commit is contained in:
commit
a6b773a23e
|
@ -438,3 +438,7 @@
|
|||
#define SH4_RAM_CLOCK (100*1000*1000) //[100000000] XTal(13.5) -> PLL (33.3) -> PLL 1:3 (100) , also suplied to HOLLY chip
|
||||
#define G2_BUS_CLOCK (25*1000*1000) //[25000000] from Holly, from SH4_RAM_CLOCK w/ 2 2:1 plls
|
||||
|
||||
#if defined(GLES) && !defined(GLES3)
|
||||
// Only use GL ES 2.0 API functions
|
||||
#define GLES2
|
||||
#endif
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
#include <GLES32/gl32.h>
|
||||
#include <EGL/egl.h>
|
||||
#include "gl32funcs.h"
|
||||
#include "build.h"
|
||||
|
||||
void load_gles_symbols()
|
||||
{
|
||||
#ifdef _ANDROID
|
||||
#ifdef GLES3
|
||||
for (int i = 0; rglgen_symbol_map[i].sym != NULL; i++)
|
||||
*(void **)rglgen_symbol_map[i].ptr = eglGetProcAddress(rglgen_symbol_map[i].sym);
|
||||
#endif
|
||||
|
|
|
@ -948,9 +948,10 @@ void SetMVS_Mode(ModifierVolumeMode mv_mode, ISP_Modvol ispc)
|
|||
|
||||
static void SetupMainVBO()
|
||||
{
|
||||
#ifndef GLES2
|
||||
if (gl.gl_major >= 3)
|
||||
glBindVertexArray(gl.vbo.vao);
|
||||
|
||||
#endif
|
||||
glBindBuffer(GL_ARRAY_BUFFER, gl.vbo.geometry); glCheck();
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gl.vbo.idxs); glCheck();
|
||||
|
||||
|
@ -970,9 +971,10 @@ static void SetupMainVBO()
|
|||
|
||||
void SetupModvolVBO()
|
||||
{
|
||||
#ifndef GLES2
|
||||
if (gl.gl_major >= 3)
|
||||
glBindVertexArray(gl.vbo.vao);
|
||||
|
||||
#endif
|
||||
glBindBuffer(GL_ARRAY_BUFFER, gl.vbo.modvols); glCheck();
|
||||
|
||||
//setup vertex buffers attrib pointers
|
||||
|
|
|
@ -564,6 +564,7 @@ GLuint fogTextureId;
|
|||
return false;
|
||||
}
|
||||
#ifdef GLES
|
||||
// EGL only supports runtime loading with android? TDB
|
||||
load_gles_symbols();
|
||||
#else
|
||||
egl_makecurrent();
|
||||
|
@ -1202,7 +1203,9 @@ bool gl_create_resources()
|
|||
//create vao
|
||||
//This is really not "proper", vaos are supposed to be defined once
|
||||
//i keep updating the same one to make the es2 code work in 3.1 context
|
||||
#ifndef GLES2
|
||||
glGenVertexArrays(1, &gl.vbo.vao);
|
||||
#endif
|
||||
}
|
||||
|
||||
//create vbos
|
||||
|
@ -2001,8 +2004,10 @@ struct glesrend : Renderer
|
|||
|
||||
void DrawOSD(bool clear_screen)
|
||||
{
|
||||
#ifndef GLES2
|
||||
if (gl.gl_major >= 3)
|
||||
glBindVertexArray(gl.vbo.vao);
|
||||
#endif
|
||||
glBindBuffer(GL_ARRAY_BUFFER, gl.vbo.geometry); glCheck();
|
||||
glEnableVertexAttribArray(VERTEX_POS_ARRAY);
|
||||
glVertexAttribPointer(VERTEX_POS_ARRAY, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offsetof(Vertex,x));
|
||||
|
|
|
@ -17,7 +17,9 @@
|
|||
#endif
|
||||
#include <GLES32/gl32.h>
|
||||
#include <GLES32/gl2ext.h>
|
||||
#ifndef GLES2
|
||||
#include "gl32funcs.h"
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_draw_path
|
||||
//IMGTEC GLES emulation
|
||||
|
|
|
@ -141,6 +141,7 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data, bool save_backgr
|
|||
|
||||
if (save_background)
|
||||
{
|
||||
#ifndef GLES2
|
||||
if (!gl.is_gles && glReadBuffer != NULL)
|
||||
glReadBuffer(GL_FRONT);
|
||||
|
||||
|
@ -157,6 +158,7 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data, bool save_backgr
|
|||
|
||||
// Copy the current framebuffer into it
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, fb_width, fb_height);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled, polygon fill
|
||||
|
@ -188,10 +190,12 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data, bool save_backgr
|
|||
glcache.UseProgram(g_ShaderHandle);
|
||||
glUniform1i(g_AttribLocationTex, 0);
|
||||
glUniformMatrix4fv(g_AttribLocationProjMtx, 1, GL_FALSE, &ortho_projection[0][0]);
|
||||
#ifndef GLES2
|
||||
if (gl.gl_major >= 3 && glBindSampler != NULL)
|
||||
glBindSampler(0, 0); // We use combined texture/sampler state. Applications using GL 3.3 may set that otherwise.
|
||||
|
||||
#endif
|
||||
GLuint vao_handle = 0;
|
||||
#ifndef GLES2
|
||||
if (gl.gl_major >= 3)
|
||||
{
|
||||
// Recreate the VAO every time
|
||||
|
@ -199,6 +203,7 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data, bool save_backgr
|
|||
glGenVertexArrays(1, &vao_handle);
|
||||
glBindVertexArray(vao_handle);
|
||||
}
|
||||
#endif
|
||||
glBindBuffer(GL_ARRAY_BUFFER, g_VboHandle);
|
||||
glEnableVertexAttribArray(g_AttribLocationPosition);
|
||||
glEnableVertexAttribArray(g_AttribLocationUV);
|
||||
|
@ -247,8 +252,10 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data, bool save_backgr
|
|||
idx_buffer_offset += pcmd->ElemCount;
|
||||
}
|
||||
}
|
||||
#ifndef GLES2
|
||||
if (vao_handle != 0)
|
||||
glDeleteVertexArrays(1, &vao_handle);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool ImGui_ImplOpenGL3_CreateFontsTexture()
|
||||
|
@ -320,7 +327,7 @@ static bool CheckProgram(GLuint handle, const char* desc)
|
|||
return (GLboolean)status == GL_TRUE;
|
||||
}
|
||||
|
||||
bool ImGui_ImplOpenGL3_CreateDeviceObjects()
|
||||
bool ImGui_ImplOpenGL3_CreateDeviceObjects()
|
||||
{
|
||||
// Parse GLSL version string
|
||||
int glsl_version = 130;
|
||||
|
|
|
@ -76,19 +76,15 @@ ifdef CHD5_FLAC
|
|||
endif
|
||||
|
||||
ifdef NAOMI
|
||||
LOCAL_CFLAGS += -DTARGET_NAOMI=1
|
||||
LOCAL_CPPFLAGS += -DTARGET_NAOMI=1
|
||||
LOCAL_CXXFLAGS += -DTARGET_NAOMI=1
|
||||
LOCAL_CFLAGS += -DTARGET_NAOMI=1
|
||||
endif
|
||||
|
||||
# LOCAL_CFLAGS += -std=c++11
|
||||
LOCAL_CFLAGS += -DGLES3
|
||||
LOCAL_CXXFLAGS += -std=c++11 -fopenmp
|
||||
LOCAL_LDFLAGS += -fopenmp
|
||||
|
||||
ifeq ($(TARGET_ARCH_ABI),x86)
|
||||
LOCAL_CFLAGS+= -DTARGET_NO_AREC -DTARGET_NO_OPENMP
|
||||
LOCAL_CXXFLAGS+= -DTARGET_NO_AREC -fpermissive -DTARGET_NO_OPENMP
|
||||
LOCAL_CPPFLAGS+= -DTARGET_NO_AREC -DTARGET_NO_OPENMP
|
||||
endif
|
||||
|
||||
LOCAL_CPP_FEATURES :=
|
||||
|
|
|
@ -171,8 +171,7 @@ else ifneq (,$(findstring rpi,$(platform)))
|
|||
INCS += -I/opt/vc/include/ -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
|
||||
LIBS += -L/opt/vc/lib/ -lbcm_host -ldl
|
||||
LIBS += -lbrcmEGL -lbrcmGLESv2
|
||||
CFLAGS += -D TARGET_VIDEOCORE
|
||||
CXXFLAGS += -DGLES
|
||||
CFLAGS += -D TARGET_VIDEOCORE -DGLES
|
||||
USE_OMX := 1
|
||||
USE_DISPMANX := 1
|
||||
endif
|
||||
|
@ -208,7 +207,7 @@ else ifneq (,$(findstring odroid,$(platform)))
|
|||
ifneq (,$(findstring odroidxu3,$(platform)))
|
||||
MFLAGS += -march=armv7ve -mtune=cortex-a15.cortex-a7
|
||||
ASFLAGS += -march=armv7ve
|
||||
|
||||
CFLAGS += -DGLES3
|
||||
# Other ODROIDs
|
||||
else
|
||||
MFLAGS += -march=armv7-a
|
||||
|
@ -382,7 +381,7 @@ endif
|
|||
|
||||
# GLES on x11?
|
||||
ifdef USE_GLES
|
||||
CXXFLAGS += -DGLES
|
||||
CFLAGS += -DGLES
|
||||
LIBS += -lEGL -lGLESv2
|
||||
else ifdef FOR_LINUX
|
||||
LIBS += -ldl -lGL #for desktop gl
|
||||
|
|
Loading…
Reference in New Issue