Skip to content

Commit 8c4e04f

Browse files
author
Darcy Liu
committed
add GLTextureAtlas
1 parent 139dd40 commit 8c4e04f

26 files changed

+3711
-1
lines changed

GLTextureAtlas.zip

340 KB
Binary file not shown.

GLTextureAtlas/Classes/EAGLView.h

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
/*
2+
File: EAGLView.h
3+
Abstract:
4+
Version: 1.5
5+
6+
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7+
Inc. ("Apple") in consideration of your agreement to the following
8+
terms, and your use, installation, modification or redistribution of
9+
this Apple software constitutes acceptance of these terms. If you do
10+
not agree with these terms, please do not use, install, modify or
11+
redistribute this Apple software.
12+
13+
In consideration of your agreement to abide by the following terms, and
14+
subject to these terms, Apple grants you a personal, non-exclusive
15+
license, under Apple's copyrights in this original Apple software (the
16+
"Apple Software"), to use, reproduce, modify and redistribute the Apple
17+
Software, with or without modifications, in source and/or binary forms;
18+
provided that if you redistribute the Apple Software in its entirety and
19+
without modifications, you must retain this notice and the following
20+
text and disclaimers in all such redistributions of the Apple Software.
21+
Neither the name, trademarks, service marks or logos of Apple Inc. may
22+
be used to endorse or promote products derived from the Apple Software
23+
without specific prior written permission from Apple. Except as
24+
expressly stated in this notice, no other rights or licenses, express or
25+
implied, are granted by Apple herein, including but not limited to any
26+
patent rights that may be infringed by your derivative works or by other
27+
works in which the Apple Software may be incorporated.
28+
29+
The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30+
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31+
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32+
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33+
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34+
35+
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36+
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38+
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39+
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40+
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41+
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42+
POSSIBILITY OF SUCH DAMAGE.
43+
44+
Copyright (C) 2010 Apple Inc. All Rights Reserved.
45+
46+
*/
47+
48+
#import <UIKit/UIKit.h>
49+
#import <OpenGLES/EAGL.h>
50+
#import <OpenGLES/ES1/gl.h>
51+
#import <OpenGLES/ES1/glext.h>
52+
53+
#import "PVRTexture.h"
54+
55+
/*
56+
This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
57+
The view content is basically an EAGL surface you render your OpenGL scene into.
58+
Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
59+
*/
60+
@interface EAGLView : UIView {
61+
62+
@private
63+
/* The pixel dimensions of the backbuffer */
64+
GLint backingWidth;
65+
GLint backingHeight;
66+
67+
EAGLContext *context;
68+
69+
/* OpenGL names for the renderbuffer and framebuffers used to render to this view */
70+
GLuint viewRenderbuffer, viewFramebuffer;
71+
72+
/* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it exists (0 if it does not exist) */
73+
GLuint depthRenderbuffer;
74+
75+
GLint widthScaleIndex, frameCount; //to simulate the fly effect
76+
77+
GLuint textureAtlas;
78+
PVRTexture *pvrTextureAtlas;
79+
80+
Boolean init;
81+
82+
BOOL animating;
83+
BOOL displayLinkSupported;
84+
NSInteger animationFrameInterval;
85+
// Use of the CADisplayLink class is the preferred method for controlling your animation timing.
86+
// CADisplayLink will link to the main display and fire every vsync when added to a given run-loop.
87+
// The NSTimer class is used only as fallback when running on a pre 3.1 device where CADisplayLink
88+
// isn't available.
89+
id displayLink;
90+
NSTimer *animationTimer;
91+
}
92+
93+
@property (readonly, nonatomic, getter=isAnimating) BOOL animating;
94+
@property (nonatomic) NSInteger animationFrameInterval;
95+
96+
- (void)startAnimation;
97+
- (void)stopAnimation;
98+
- (void)drawView;
99+
100+
@end

0 commit comments

Comments
 (0)