RSS

(root)/iphone/common : /source/ESShader.m (revision 61)

To get this branch, use:
bzr branch /browse/iphone/common
Line Revision Contents
1 20
//
2
//  ESShader.m
3
//
4
//  Created by döme on 08.08.2009.
5
//
6
7 54
/*
8
 * Copyright (c) 2009 Doemoetoer Gulyas.
9
 * All rights reserved.
10
 *
11
 * Redistribution and use in source and binary forms, with or without
12
 * modification, are permitted provided that the following conditions
13
 * are met:
14
 * 1. Redistributions of source code must retain the above copyright
15
 *    notice, this list of conditions and the following disclaimer.
16
 * 2. Redistributions in binary form must reproduce the above copyright
17
 *    notice, this list of conditions and the following disclaimer in the
18
 *    documentation and/or other materials provided with the distribution.
19
 * 3. The name of the author may not be used to endorse or promote products
20
 *    derived from this software without specific prior written permission.
21
 *
22
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
 */
33
34 20
#import "ESShader.h"
35
#import "ES1Shader.h"
36
#import "ES2Shader.h"
37
38
@implementation ESShader
39
40
+ (id) shader
41
{
42 21
	switch([[EAGLContext currentContext] API])
43 20
	{
44
		case kEAGLRenderingAPIOpenGLES1:
45
			return [[ES1Shader alloc] autorelease];
46
		case kEAGLRenderingAPIOpenGLES2:
47
			return [[ES2Shader alloc] autorelease];
48
		default:
49
			[[NSException exceptionWithName: @"com.elmonkey.invalidShader" reason: @"Invalid OpenGL ES API selected." userInfo: nil] raise];
50
			return nil;
51
	}
52
}
53
54
- (id) init
55
{
56
	if (!(self = [super init]))
57
		return nil;
58
59
	return self;
60
}
61
62
- (void) dealloc
63
{
64
65
	[super dealloc];
66
}
67
68
- (void) bindShader
69
{
70
	[self doesNotRecognizeSelector: _cmd];
71
}
72
73
- (void) setModelviewMatrix: (m16*) m
74
{
75
	[self doesNotRecognizeSelector: _cmd];
76
}
77
- (void) setProjectionMatrix: (m16*) m
78
{
79
	[self doesNotRecognizeSelector: _cmd];
80
}
81
- (void) setTextureMatrix: (m16*) m
82
{
83
	[self doesNotRecognizeSelector: _cmd];
84
}
85
86 23
- (void) setColorRed: (float) r green: (float) g blue: (float) b alpha: (float) a
87
{
88
	[self doesNotRecognizeSelector: _cmd];
89
}
90
91 20
@end
92
93

Loggerhead 1.17 is a web-based interface for Bazaar branches