/* * cocos2d for iPhone: http://www.cocos2d-iphone.org * * Copyright (c) 2008-2010 Ricardo Quesada * Copyright (c) 2011 Zynga Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ #import "ccTypes.h" #import "CCTexture2D.h" #pragma mark - #pragma mark CCRGBAProtocol /// CC RGBA protocol @protocol CCRGBAProtocol /** sets Color @since v0.8 */ -(void) setColor:(ccColor3B)color; /** returns the color @since v0.8 */ -(ccColor3B) color; /// returns the opacity -(GLubyte) opacity; /** sets the opacity. @warning If the the texture has premultiplied alpha then, the R, G and B channels will be modifed. Values goes from 0 to 255, where 255 means fully opaque. */ -(void) setOpacity: (GLubyte) opacity; @optional /** sets the premultipliedAlphaOpacity property. If set to NO then opacity will be applied as: glColor(R,G,B,opacity); If set to YES then oapcity will be applied as: glColor(opacity, opacity, opacity, opacity ); Textures with premultiplied alpha will have this property by default on YES. Otherwise the default value is NO @since v0.8 */ -(void) setOpacityModifyRGB:(BOOL)boolean; /** returns whether or not the opacity will be applied using glColor(R,G,B,opacity) or glColor(opacity, opacity, opacity, opacity); @since v0.8 */ -(BOOL) doesOpacityModifyRGB; @end #pragma mark - #pragma mark CCBlendProtocol /** You can specify the blending fuction. @since v0.99.0 */ @protocol CCBlendProtocol /** set the source blending function for the texture */ -(void) setBlendFunc:(ccBlendFunc)blendFunc; /** returns the blending function used for the texture */ -(ccBlendFunc) blendFunc; @end #pragma mark - #pragma mark CCTextureProtocol /** CCNode objects that uses a Texture2D to render the images. The texture can have a blending function. If the texture has alpha premultiplied the default blending function is: src=GL_ONE dst= GL_ONE_MINUS_SRC_ALPHA else src=GL_SRC_ALPHA dst= GL_ONE_MINUS_SRC_ALPHA But you can change the blending funtion at any time. @since v0.8.0 */ @protocol CCTextureProtocol /** returns the used texture */ -(CCTexture2D*) texture; /** sets a new texture. it will be retained */ -(void) setTexture:(CCTexture2D*)texture; @end #pragma mark - #pragma mark CCLabelProtocol /** Common interface for Labels */ @protocol CCLabelProtocol /** sets a new label using an NSString. The string will be copied. */ -(void) setString:(NSString*)label; /** returns the string that is rendered */ -(NSString*) string; @optional /** sets a new label using a CString. It is faster than setString since it doesn't require to alloc/retain/release an NString object. @since v0.99.0 */ -(void) setCString:(char*)label; @end #pragma mark - #pragma mark CCProjectionProtocol /** OpenGL projection protocol */ @protocol CCProjectionProtocol /** Called by CCDirector when the porjection is updated, and "custom" projection is used @since v0.99.5 */ -(void) updateProjection; @end