Panda3D

Loading...
Searching...
No Matches
config_androiddisplay.cxx
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file config_androiddisplay.cxx
10 * @author rdb
11 * @date 2013-01-11
12 */
13
14#include "config_androiddisplay.h"
15#include "androidGraphicsPipe.h"
16#include "androidGraphicsWindow.h"
17#include "androidGraphicsStateGuardian.h"
18#include "graphicsPipeSelection.h"
19#include "dconfig.h"
20#include "pandaSystem.h"
21
22#include "config_display.h"
23
24Configure(config_androiddisplay);
25NotifyCategoryDef(androiddisplay, "display");
26
27ConfigureFn(config_androiddisplay) {
28 init_libandroiddisplay();
29}
30
31/**
32 * Initializes the library. This must be called at least once before any of
33 * the functions or classes in this library can be used. Normally it will be
34 * called by the static initializers and need not be called explicitly, but
35 * special cases exist.
36 */
37 void
38 init_libandroiddisplay() {
39 static bool initialized = false;
40 if (initialized) {
41 return;
42 }
43 initialized = true;
44
45 init_libdisplay();
46 display_cat.get_safe_ptr();
47
48 AndroidGraphicsPipe::init_type();
49 AndroidGraphicsWindow::init_type();
50 AndroidGraphicsStateGuardian::init_type();
51
52 GraphicsPipeSelection *selection = GraphicsPipeSelection::get_global_ptr();
53 selection->add_pipe_type(AndroidGraphicsPipe::get_class_type(),
54 AndroidGraphicsPipe::pipe_constructor);
55
56 PandaSystem *ps = PandaSystem::get_global_ptr();
57#ifdef OPENGLES_2
58 ps->set_system_tag("OpenGL ES 2", "window_system", "Android");
59#else
60 ps->set_system_tag("OpenGL ES", "window_system", "Android");
61#endif
62}
63
64/**
65 * Returns the given EGL error as string.
66 */
67 const std::string get_egl_error_string(int error) {
68 switch (error) {
69 case 0x3000: return "EGL_SUCCESS"; break;
70 case 0x3001: return "EGL_NOT_INITIALIZED"; break;
71 case 0x3002: return "EGL_BAD_ACCESS"; break;
72 case 0x3003: return "EGL_BAD_ALLOC"; break;
73 case 0x3004: return "EGL_BAD_ATTRIBUTE"; break;
74 case 0x3005: return "EGL_BAD_CONFIG"; break;
75 case 0x3006: return "EGL_BAD_CONTEXT"; break;
76 case 0x3007: return "EGL_BAD_CURRENT_SURFACE"; break;
77 case 0x3008: return "EGL_BAD_DISPLAY"; break;
78 case 0x3009: return "EGL_BAD_MATCH"; break;
79 case 0x300A: return "EGL_BAD_NATIVE_PIXMAP"; break;
80 case 0x300B: return "EGL_BAD_NATIVE_WINDOW"; break;
81 case 0x300C: return "EGL_BAD_PARAMETER"; break;
82 case 0x300D: return "EGL_BAD_SURFACE"; break;
83 case 0x300E: return "EGL_CONTEXT_LOST"; break;
84 default: return "Unknown error";
85 }
86}
androidGraphicsPipe.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
androidGraphicsStateGuardian.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
androidGraphicsWindow.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
GraphicsPipeSelection
This maintains a list of GraphicsPipes by type that are available for creation.
Definition graphicsPipeSelection.h:33
GraphicsPipeSelection::get_global_ptr
static GraphicsPipeSelection * get_global_ptr()
Returns a pointer to the one global GraphicsPipeSelection object.
Definition graphicsPipeSelection.I:28
GraphicsPipeSelection::add_pipe_type
bool add_pipe_type(TypeHandle type, PipeConstructorFunc *func)
Adds a new kind of GraphicsPipe to the list of available pipes for creation.
Definition graphicsPipeSelection.cxx:317
PandaSystem
This class is used as a namespace to group several global properties of Panda.
Definition pandaSystem.h:26
PandaSystem::set_system_tag
void set_system_tag(const std::string &system, const std::string &tag, const std::string &value)
Intended for use by each subsystem to register its set of capabilities at startup.
Definition pandaSystem.cxx:383
PandaSystem::get_global_ptr
static PandaSystem * get_global_ptr()
Returns the global PandaSystem object.
Definition pandaSystem.cxx:448
init_libandroiddisplay
void init_libandroiddisplay()
Initializes the library.
Definition config_androiddisplay.cxx:38
get_egl_error_string
const std::string get_egl_error_string(int error)
Returns the given EGL error as string.
Definition config_androiddisplay.cxx:67
config_androiddisplay.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
init_libdisplay
void init_libdisplay()
Initializes the library.
Definition config_display.cxx:502
config_display.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
dconfig.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
graphicsPipeSelection.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pandaSystem.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.