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