rsdGL.h revision 4b3de47071d875faaa7d419d050a464b09538797
14b3de47071d875faaa7d419d050a464b09538797Jason Sams/*
24b3de47071d875faaa7d419d050a464b09538797Jason Sams * Copyright (C) 2011 The Android Open Source Project
34b3de47071d875faaa7d419d050a464b09538797Jason Sams *
44b3de47071d875faaa7d419d050a464b09538797Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
54b3de47071d875faaa7d419d050a464b09538797Jason Sams * you may not use this file except in compliance with the License.
64b3de47071d875faaa7d419d050a464b09538797Jason Sams * You may obtain a copy of the License at
74b3de47071d875faaa7d419d050a464b09538797Jason Sams *
84b3de47071d875faaa7d419d050a464b09538797Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
94b3de47071d875faaa7d419d050a464b09538797Jason Sams *
104b3de47071d875faaa7d419d050a464b09538797Jason Sams * Unless required by applicable law or agreed to in writing, software
114b3de47071d875faaa7d419d050a464b09538797Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
124b3de47071d875faaa7d419d050a464b09538797Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134b3de47071d875faaa7d419d050a464b09538797Jason Sams * See the License for the specific language governing permissions and
144b3de47071d875faaa7d419d050a464b09538797Jason Sams * limitations under the License.
154b3de47071d875faaa7d419d050a464b09538797Jason Sams */
164b3de47071d875faaa7d419d050a464b09538797Jason Sams
174b3de47071d875faaa7d419d050a464b09538797Jason Sams#ifndef RSD_GL_H
184b3de47071d875faaa7d419d050a464b09538797Jason Sams#define RSD_GL_H
194b3de47071d875faaa7d419d050a464b09538797Jason Sams
204b3de47071d875faaa7d419d050a464b09538797Jason Sams#include <rs_hal.h>
214b3de47071d875faaa7d419d050a464b09538797Jason Sams
224b3de47071d875faaa7d419d050a464b09538797Jason Sams
234b3de47071d875faaa7d419d050a464b09538797Jason Sams
244b3de47071d875faaa7d419d050a464b09538797Jason Samstypedef void (* InvokeFunc_t)(void);
254b3de47071d875faaa7d419d050a464b09538797Jason Samstypedef void (*WorkerCallback_t)(void *usr, uint32_t idx);
264b3de47071d875faaa7d419d050a464b09538797Jason Sams
274b3de47071d875faaa7d419d050a464b09538797Jason Samstypedef struct RsdGLRec {
284b3de47071d875faaa7d419d050a464b09538797Jason Sams    struct {
294b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLint numConfigs;
304b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLint majorVersion;
314b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLint minorVersion;
324b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLConfig config;
334b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLContext context;
344b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLSurface surface;
354b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLSurface surfaceDefault;
364b3de47071d875faaa7d419d050a464b09538797Jason Sams        EGLDisplay display;
374b3de47071d875faaa7d419d050a464b09538797Jason Sams    } egl;
384b3de47071d875faaa7d419d050a464b09538797Jason Sams
394b3de47071d875faaa7d419d050a464b09538797Jason Sams    struct {
404b3de47071d875faaa7d419d050a464b09538797Jason Sams        const uint8_t * vendor;
414b3de47071d875faaa7d419d050a464b09538797Jason Sams        const uint8_t * renderer;
424b3de47071d875faaa7d419d050a464b09538797Jason Sams        const uint8_t * version;
434b3de47071d875faaa7d419d050a464b09538797Jason Sams        const uint8_t * extensions;
444b3de47071d875faaa7d419d050a464b09538797Jason Sams
454b3de47071d875faaa7d419d050a464b09538797Jason Sams        uint32_t majorVersion;
464b3de47071d875faaa7d419d050a464b09538797Jason Sams        uint32_t minorVersion;
474b3de47071d875faaa7d419d050a464b09538797Jason Sams
484b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxVaryingVectors;
494b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxTextureImageUnits;
504b3de47071d875faaa7d419d050a464b09538797Jason Sams
514b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxFragmentTextureImageUnits;
524b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxFragmentUniformVectors;
534b3de47071d875faaa7d419d050a464b09538797Jason Sams
544b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxVertexAttribs;
554b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxVertexUniformVectors;
564b3de47071d875faaa7d419d050a464b09538797Jason Sams        int32_t maxVertexTextureUnits;
574b3de47071d875faaa7d419d050a464b09538797Jason Sams
584b3de47071d875faaa7d419d050a464b09538797Jason Sams        bool OES_texture_npot;
594b3de47071d875faaa7d419d050a464b09538797Jason Sams        bool GL_IMG_texture_npot;
604b3de47071d875faaa7d419d050a464b09538797Jason Sams        bool GL_NV_texture_npot_2D_mipmap;
614b3de47071d875faaa7d419d050a464b09538797Jason Sams        float EXT_texture_max_aniso;
624b3de47071d875faaa7d419d050a464b09538797Jason Sams    } gl;
634b3de47071d875faaa7d419d050a464b09538797Jason Sams
644b3de47071d875faaa7d419d050a464b09538797Jason Sams    ANativeWindow *wndSurface;
654b3de47071d875faaa7d419d050a464b09538797Jason Sams    uint32_t width;
664b3de47071d875faaa7d419d050a464b09538797Jason Sams    uint32_t height;
674b3de47071d875faaa7d419d050a464b09538797Jason Sams} RsdGL;
684b3de47071d875faaa7d419d050a464b09538797Jason Sams
694b3de47071d875faaa7d419d050a464b09538797Jason Sams
704b3de47071d875faaa7d419d050a464b09538797Jason Sams
714b3de47071d875faaa7d419d050a464b09538797Jason Samsbool rsdGLInit(const android::renderscript::Context *rsc);
724b3de47071d875faaa7d419d050a464b09538797Jason Samsvoid rsdGLShutdown(const android::renderscript::Context *rsc);
734b3de47071d875faaa7d419d050a464b09538797Jason Samsbool rsdGLSetSurface(const android::renderscript::Context *rsc,
744b3de47071d875faaa7d419d050a464b09538797Jason Sams                     uint32_t w, uint32_t h, ANativeWindow *sur);
754b3de47071d875faaa7d419d050a464b09538797Jason Samsvoid rsdGLSwap(const android::renderscript::Context *rsc);
764b3de47071d875faaa7d419d050a464b09538797Jason Sams
774b3de47071d875faaa7d419d050a464b09538797Jason Sams#endif
784b3de47071d875faaa7d419d050a464b09538797Jason Sams
79