Files
deighton-ar/mobile/ios/ViroKit.framework/Headers/VROOpenGL.h
2018-03-27 17:46:15 -07:00

78 lines
1.6 KiB
Objective-C

//
// VROOpenGL.h
// ViroRenderer
//
// Created by Raj Advani on 11/2/16.
// Copyright © 2016 Viro Media. All rights reserved.
//
#ifndef VROOpenGL_h
#define VROOpenGL_h
#include "VRODefines.h"
#include "VROLog.h"
#if VRO_PLATFORM_ANDROID
#include <cstring>
#include <stdlib.h>
#include <EGL/egl.h>
#include <GLES3/gl3.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3ext.h>
#include <GLES3/gl3platform.h>
// Avoiding glBufferSubData seems to increase stability on Adreno devices
#define VRO_AVOID_BUFFER_SUB_DATA 1
#elif VRO_PLATFORM_IOS
#import <OpenGLES/EAGL.h>
#import <OpenGLES/ES1/glext.h>
#import <OpenGLES/ES2/gl.h>
#import <OpenGLES/ES2/glext.h>
#import <OpenGLES/ES3/gl.h>
#import <OpenGLES/ES3/glext.h>
#define VRO_AVOID_BUFFER_SUB_DATA 0
#endif
#ifdef CHECK_GL_ERRORS
static const char * GlErrorString( GLenum error )
{
switch ( error )
{
case GL_NO_ERROR: return "GL_NO_ERROR";
case GL_INVALID_ENUM: return "GL_INVALID_ENUM";
case GL_INVALID_VALUE: return "GL_INVALID_VALUE";
case GL_INVALID_OPERATION: return "GL_INVALID_OPERATION";
case GL_INVALID_FRAMEBUFFER_OPERATION: return "GL_INVALID_FRAMEBUFFER_OPERATION";
case GL_OUT_OF_MEMORY: return "GL_OUT_OF_MEMORY";
default: return "unknown";
}
}
static void GLCheckErrors( int line )
{
for ( int i = 0; i < 10; i++ )
{
const GLenum error = glGetError();
if ( error == GL_NO_ERROR )
{
break;
}
pinfo( "GL error on line %d: %s", line, GlErrorString( error ) );
}
}
#define GL( func ) func; GLCheckErrors( __LINE__ );
#else // CHECK_GL_ERRORS
#define GL( func ) func;
#endif // CHECK_GL_ERRORS
#endif /* VROOpenGL_h */