瀏覽代碼

OpenGLES 2.0 support on PLATFORM_DESKTOP (#2840)

* OpenGLES 2.0 support on PLATFORM_DESKTOP

* exmples raylib_opengl_interop desktop GLES2 support

* rename gles2.h -> glad_gles2.h
pull/2853/head
Go Watanabe 2 年之前
committed by GitHub
父節點
當前提交
f549f67be9
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 5 個檔案被更改,包括 9581 行新增11 行删除
  1. +1
    -1
      cmake/LibraryConfigurations.cmake
  2. +4774
    -0
      examples/others/external/include/glad_gles2.h
  3. +20
    -10
      examples/others/raylib_opengl_interop.c
  4. +4774
    -0
      src/external/glad_gles2.h
  5. +12
    -0
      src/rlgl.h

+ 1
- 1
cmake/LibraryConfigurations.cmake 查看文件

@ -93,7 +93,7 @@ elseif ("${PLATFORM}" MATCHES "DRM")
endif ()
if (${OPENGL_VERSION})
if (s">NOT ${OPENGL_VERSION})
set(${SUGGESTED_GRAPHICS} "${GRAPHICS}")
if (${OPENGL_VERSION} MATCHES "4.3")
set(GRAPHICS "GRAPHICS_API_OPENGL_43")

+ 4774
- 0
examples/others/external/include/glad_gles2.h
文件差異過大導致無法顯示
查看文件


+ 20
- 10
examples/others/raylib_opengl_interop.c 查看文件

@ -26,21 +26,29 @@
#include "raylib.h"
#include "rlgl.h" // Required for: rlDrawRenderBatchActive(), rlGetMatrixModelview(), rlGetMatrixProjection()
#if defined(__APPLE__)
#include <OpenGL/gl3.h> // OpenGL 3 library for OSX
#include <OpenGL/gl3ext.h> // OpenGL 3 extensions library for OSX
#else
#include "glad.h" // Required for: OpenGL functionality
#endif
#include "raymath.h" // Required for: MatrixMultiply(), MatrixToFloat()
#if defined(PLATFORM_DESKTOP)
#define GLSL_VERSION 330
#if defined(GRAPHICS_API_OPENGL_ES2)
#include "glad_gles2.h" // Required for: OpenGL functionality
#define glGenVertexArrays glGenVertexArraysOES
#define glBindVertexArray glBindVertexArrayOES
#define glDeleteVertexArrays glDeleteVertexArraysOES
#define GLSL_VERSION 100
#else
#if defined(__APPLE__)
#include <OpenGL/gl3.h> // OpenGL 3 library for OSX
#include <OpenGL/gl3ext.h> // OpenGL 3 extensions library for OSX
#else
#include "glad.h" // Required for: OpenGL functionality
#endif
#define GLSL_VERSION 330
#endif
#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
#define GLSL_VERSION 100
#endif
#include "rlgl.h" // Required for: rlDrawRenderBatchActive(), rlGetMatrixModelview(), rlGetMatrixProjection()
#include "raymath.h" // Required for: MatrixMultiply(), MatrixToFloat()
#define MAX_PARTICLES 1000
// Particle type
@ -97,7 +105,9 @@ int main(void)
glBindVertexArray(0);
// Allows the vertex shader to set the point size of each particle individually
#ifndef GRAPHICS_API_OPENGL_ES2
glEnable(GL_PROGRAM_POINT_SIZE);
#endif
SetTargetFPS(60);
//--------------------------------------------------------------------------------------

+ 4774
- 0
src/external/glad_gles2.h
文件差異過大導致無法顯示
查看文件


+ 12
- 0
src/rlgl.h 查看文件

@ -789,10 +789,16 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
#endif
#if defined(GRAPHICS_API_OPENGL_ES2)
#if defined(PLATFORM_DESKTOP)
#define GLAD_GLES2_IMPLEMENTATION
#include "external/glad_gles2.h"
#else
#define GL_GLEXT_PROTOTYPES
//#include <EGL/egl.h> // EGL library -> not required, platform layer
#include <GLES2/gl2.h> // OpenGL ES 2.0 library
#include <GLES2/gl2ext.h> // OpenGL ES 2.0 extensions library
#endif
// It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi
// provided headers (despite being defined in official Khronos GLES2 headers)
@ -2144,6 +2150,12 @@ void rlLoadExtensions(void *loader)
#endif // GRAPHICS_API_OPENGL_33
#if defined(GRAPHICS_API_OPENGL_ES2)
#if defined(PLATFORM_DESKTOP)
if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions");
else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES2.0 loaded successfully");
#endif
// Get supported extensions list
GLint numExt = 0;
const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB)

Loading…
取消
儲存