From cocos2d v0.7 onwards it is easier to customize the texture's parameters like GL_LINEAR, GL_NEAREST, CLAMP_TO_EDGE, etc.
By default all cocos2d's textures are created with these values:
GL_TEXTURE_MIN_FILTER = GL_LINEAR;
GL_TEXTURE_MAG_FILTER = GL_LINEAR;
GL_TEXTURE_WRAP_S = GL_CLAMP_TO_EDGE;
GL_TEXTURE_WRAP_T = GL_CLAMP_TO_EDGE;
You can change the default parameters. eg:
// Change default texture's parameters
ccTexParams texParams;
texParams.minFilter = GL_NEAREST;
texParams.magFilter = GL_NEAREST;
texParams.wrapS = GL_REPEAT;
texParams.wrapT = GL_REPEAT;
[Texture2D setTexParameters: &texParams];
You can also change the texture's parameters just for 1 texture. For example, if you want to create a TileMapAtlas with GL_NEAREST you should do this:
// save current state
[Texture2D saveTexParameters];
// set GL_NEAREST
ccTexParams texParams = [Texture2D texParameters];
texParams.minFilter = GL_NEAREST;
texParams.magFilter = GL_NEAREST;
[Texture2D setTexParameters: &texParams];
// create the texture
TileMapAtlas *tilemap = [TileMapAtlas tileMapAtlasWithTileFile:@"tiles.png" mapFile:@"levelmap.tga" tileWidth:16 tileHeight:16];
// restore state
[Texture2D restoreTexParameters];
or, you can use the helper function setAliasTexParameters:
// Save state
[Texture2D saveTexParameters];
// set Alias parameters
[Texture2D setAliasTexParameters];
// create the texture
TileMapAtlas *tilemap = [TileMapAtlas tileMapAtlasWithTileFile:@"tiles.png" mapFile:@"levelmap.tga" tileWidth:16 tileHeight:16];
// restore texture's parameters
[Texture2D restoreTexParameters];
For more information see the Texture2dDemo example file: Texture2dTest.m
No comments:
Post a Comment