Support building pandagles2 on Android

This commit is contained in:
rdb 2021-12-06 22:26:30 +01:00
parent 0122c07e10
commit c594ab38ef
2 changed files with 29 additions and 1 deletions

View File

@ -4631,7 +4631,7 @@ if GetTarget() != 'android' and not PkgSkip("EGL") and not PkgSkip("GLES"):
# DIRECTORY: panda/src/egldisplay/ # DIRECTORY: panda/src/egldisplay/
# #
if not PkgSkip("EGL") and not PkgSkip("GLES2"): if GetTarget() != 'android' and not PkgSkip("EGL") and not PkgSkip("GLES2"):
DefSymbol('GLES2', 'OPENGLES_2', '') DefSymbol('GLES2', 'OPENGLES_2', '')
OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL', 'X11'] OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL', 'X11']
TargetAdd('pandagles2_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') TargetAdd('pandagles2_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx')
@ -4892,6 +4892,20 @@ if GetTarget() == 'android' and not PkgSkip("EGL") and not PkgSkip("GLES"):
TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS) TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS)
TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL']) TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL'])
if GetTarget() == 'android' and not PkgSkip("EGL") and not PkgSkip("GLES2"):
DefSymbol('GLES2', 'OPENGLES_2', '')
OPTS=['DIR:panda/src/androiddisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL']
TargetAdd('pandagles2_androiddisplay_composite1.obj', opts=OPTS, input='p3androiddisplay_composite1.cxx')
OPTS=['DIR:panda/metalibs/pandagles2', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL']
TargetAdd('pandagles2_pandagles2.obj', opts=OPTS, input='pandagles2.cxx')
TargetAdd('libpandagles2.dll', input='pandagles2_pandagles2.obj')
TargetAdd('libpandagles2.dll', input='p3gles2gsg_config_gles2gsg.obj')
TargetAdd('libpandagles2.dll', input='p3gles2gsg_gles2gsg.obj')
TargetAdd('libpandagles2.dll', input='pandagles2_androiddisplay_composite1.obj')
TargetAdd('libpandagles2.dll', input='libp3android.dll')
TargetAdd('libpandagles2.dll', input=COMMON_PANDA_LIBS)
TargetAdd('libpandagles2.dll', opts=['MODULE', 'GLES2', 'EGL'])
# #
# DIRECTORY: panda/src/tinydisplay/ # DIRECTORY: panda/src/tinydisplay/
# #

View File

@ -9,8 +9,13 @@
#define OPENGLES_2 #define OPENGLES_2
#include "config_gles2gsg.h" #include "config_gles2gsg.h"
#if defined(ANDROID)
#include "config_androiddisplay.h"
#include "androidGraphicsPipe.h"
#else
#include "config_egldisplay.h" #include "config_egldisplay.h"
#include "eglGraphicsPipe.h" #include "eglGraphicsPipe.h"
#endif
/** /**
* Initializes the library. This must be called at least once before any of * Initializes the library. This must be called at least once before any of
@ -21,7 +26,12 @@
void void
init_libpandagles2() { init_libpandagles2() {
init_libgles2gsg(); init_libgles2gsg();
#if defined(ANDROID)
init_libandroiddisplay();
#else
init_libegldisplay(); init_libegldisplay();
#endif
} }
/** /**
@ -30,5 +40,9 @@ init_libpandagles2() {
*/ */
int int
get_pipe_type_pandagles2() { get_pipe_type_pandagles2() {
#if defined(ANDROID)
return AndroidGraphicsPipe::get_class_type().get_index();
#else
return eglGraphicsPipe::get_class_type().get_index(); return eglGraphicsPipe::get_class_type().get_index();
#endif
} }