/libs/cocos2d/Support/OpenGL_Internal.h
C Header | 80 lines | 11 code | 3 blank | 66 comment | 5 complexity | a83437517db02a92bb450771b4e23123 MD5 | raw file
Possible License(s): Apache-2.0
1/* 2 3===== IMPORTANT ===== 4 5This is sample code demonstrating API, technology or techniques in development. 6Although this sample code has been reviewed for technical accuracy, it is not 7final. Apple is supplying this information to help you plan for the adoption of 8the technologies and programming interfaces described herein. This information 9is subject to change, and software implemented based on this sample code should 10be tested with final operating system software and final documentation. Newer 11versions of this sample code may be provided with future seeds of the API or 12technology. For information about updates to this and other developer 13documentation, view the New & Updated sidebars in subsequent documentation 14seeds. 15 16===================== 17 18File: OpenGL_Internal.h 19Abstract: This file is included for support purposes and isn't necessary for 20understanding this sample. 21 22Version: 1.0 23 24Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. 25("Apple") in consideration of your agreement to the following terms, and your 26use, installation, modification or redistribution of this Apple software 27constitutes acceptance of these terms. If you do not agree with these terms, 28please do not use, install, modify or redistribute this Apple software. 29 30In consideration of your agreement to abide by the following terms, and subject 31to these terms, Apple grants you a personal, non-exclusive license, under 32Apple's copyrights in this original Apple software (the "Apple Software"), to 33use, reproduce, modify and redistribute the Apple Software, with or without 34modifications, in source and/or binary forms; provided that if you redistribute 35the Apple Software in its entirety and without modifications, you must retain 36this notice and the following text and disclaimers in all such redistributions 37of the Apple Software. 38Neither the name, trademarks, service marks or logos of Apple Inc. may be used 39to endorse or promote products derived from the Apple Software without specific 40prior written permission from Apple. Except as expressly stated in this notice, 41no other rights or licenses, express or implied, are granted by Apple herein, 42including but not limited to any patent rights that may be infringed by your 43derivative works or by other works in which the Apple Software may be 44incorporated. 45 46The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO 47WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED 48WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 49PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN 50COMBINATION WITH YOUR PRODUCTS. 51 52IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR 53CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 54GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 55ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR 56DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF 57CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF 58APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 59 60Copyright (C) 2008 Apple Inc. All Rights Reserved. 61 62*/ 63 64/* Generic error reporting */ 65#define REPORT_ERROR(__FORMAT__, ...) printf("%s: %s\n", __FUNCTION__, [[NSString stringWithFormat:__FORMAT__, __VA_ARGS__] UTF8String]) 66 67/* EAGL and GL functions calling wrappers that log on error */ 68#define CALL_EAGL_FUNCTION(__FUNC__, ...) ({ EAGLError __error = __FUNC__( __VA_ARGS__ ); if(__error != kEAGLErrorSuccess) printf("%s() called from %s returned error %i\n", #__FUNC__, __FUNCTION__, __error); (__error ? NO : YES); }) 69//#define CHECK_GL_ERROR() ({ GLenum __error = glGetError(); if(__error) printf("OpenGL error 0x%04X in %s\n", __error, __FUNCTION__); (__error ? NO : YES); }) 70#define CHECK_GL_ERROR() ({ GLenum __error = glGetError(); if(__error) printf("OpenGL error 0x%04X in %s\n", __error, __FUNCTION__); }) 71 72/* Optional delegate methods support */ 73#ifndef __DELEGATE_IVAR__ 74#define __DELEGATE_IVAR__ _delegate 75#endif 76#ifndef __DELEGATE_METHODS_IVAR__ 77#define __DELEGATE_METHODS_IVAR__ _delegateMethods 78#endif 79#define TEST_DELEGATE_METHOD_BIT(__BIT__) (self->__DELEGATE_METHODS_IVAR__ & (1 << __BIT__)) 80#define SET_DELEGATE_METHOD_BIT(__BIT__, __NAME__) { if([self->__DELEGATE_IVAR__ respondsToSelector:@selector(__NAME__)]) self->__DELEGATE_METHODS_IVAR__ |= (1 << __BIT__); else self->__DELEGATE_METHODS_IVAR__ &= ~(1 << __BIT__); }