11cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian/*
21cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** Copyright 2011, The Android Open Source Project
31cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian **
41cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** Licensed under the Apache License, Version 2.0 (the "License");
51cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** you may not use this file except in compliance with the License.
61cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** You may obtain a copy of the License at
71cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian **
81cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian **     http://www.apache.org/licenses/LICENSE-2.0
91cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian **
101cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** Unless required by applicable law or agreed to in writing, software
111cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** distributed under the License is distributed on an "AS IS" BASIS,
121cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** See the License for the specific language governing permissions and
141cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian ** limitations under the License.
151cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian */
161cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
171cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian#ifndef ANDROID_EGLDEFS_H
181cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian#define ANDROID_EGLDEFS_H
191cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
2039c24a20bbc697630d2b92c251b70c04d6f9d00cMathias Agopian#include "../hooks.h"
211cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
227773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian#define VERSION_MAJOR 1
237773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian#define VERSION_MINOR 4
247773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian
251cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
261cadb25da1ed875bdd078270e642966724a0c39aMathias Agopiannamespace android {
271cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
281cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
291cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian//  EGLDisplay are global, not attached to a given thread
301cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianconst unsigned int NUM_DISPLAYS = 1;
311cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
321cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
331cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
347773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopianstruct egl_connection_t {
357773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian    enum {
367773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian        GLESv1_INDEX = 0,
377773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian        GLESv2_INDEX = 1
387773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian    };
397773c435bc5da8217433e1b242d3a6712a17b5f7Mathias Agopian
401cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    inline egl_connection_t() : dso(0) { }
411cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    void *              dso;
421cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    gl_hooks_t *        hooks[2];
431cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    EGLint              major;
441cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    EGLint              minor;
451cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian    egl_t               egl;
46c07b52060acd627c8510c1a9151e0753fce76330Jesse Hall
47c0ec5e2333b6350480851b8b48f000c78ea3f88aMichael Chock    void*               libEgl;
48c07b52060acd627c8510c1a9151e0753fce76330Jesse Hall    void*               libGles1;
49c07b52060acd627c8510c1a9151e0753fce76330Jesse Hall    void*               libGles2;
501cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian};
511cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
521cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
531cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
54ada798b7ca7cabc255aa159964b64975e7fdb2dfMathias Agopianextern gl_hooks_t gHooks[2];
551cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianextern gl_hooks_t gHooksNoContext;
561cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianextern pthread_key_t gGLWrapperKey;
571cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianextern "C" void gl_unimplemented();
5848d438d05f14c2f4bd83ae89f520368cd49122dfMathias Agopianextern "C" void gl_noop();
591cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
601cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianextern char const * const gl_names[];
611cadb25da1ed875bdd078270e642966724a0c39aMathias Agopianextern char const * const egl_names[];
621cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
63ada798b7ca7cabc255aa159964b64975e7fdb2dfMathias Agopianextern egl_connection_t gEGLImpl;
641cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
651cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
661cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian}; // namespace android
671cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian// ----------------------------------------------------------------------------
681cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian
691cadb25da1ed875bdd078270e642966724a0c39aMathias Agopian#endif /* ANDROID_EGLDEFS_H */
70