1a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 2a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. 3a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Use of this source code is governed by a BSD-style license that can be 4a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// found in the LICENSE file. 5a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 6a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 7a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// main.h: Management of thread-local data. 8a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 9a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#ifndef LIBGLESV2_MAIN_H_ 10a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#define LIBGLESV2_MAIN_H_ 11a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 12a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#define GL_APICALL 13a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include <GLES2/gl2.h> 145abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#include <GLES2/gl2ext.h> 15a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 16a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include "common/debug.h" 17a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include "libEGL/Display.h" 18a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 19a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include "libGLESv2/Context.h" 20a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 21a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocknamespace gl 22a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 23a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockstruct Current 24a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 25a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block Context *context; 26a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block egl::Display *display; 27a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block}; 28a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 29a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockvoid makeCurrent(Context *context, egl::Display *display, egl::Surface *surface); 30a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 31a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockContext *getContext(); 32a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockegl::Display *getDisplay(); 33a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 34a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockIDirect3DDevice9 *getDevice(); 35a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block} 36a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 37a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockvoid error(GLenum errorCode); 38a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 39a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocktemplate<class T> 40a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockconst T &error(GLenum errorCode, const T &returnValue) 41a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 42a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block error(errorCode); 43a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 44a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block return returnValue; 45a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block} 46a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 47a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#endif // LIBGLESV2_MAIN_H_ 48