-
/**
*
-## Texture Compression
+# Texture Compression {#texturecompression}
+
Using compressing the textures will:
- Speed up load times. Smaller files mean quicker load times.
DALi supports the KTX file format.
+
You just load the compressed texture like you would any other image.
- var image = new dali.ResourceImage({url:"my_compressed_file.ktx"});
+~~~{.cpp}
+// C++
+ResourceImage image = ResourceImage::New("my_compressed_file.ktx");
+~~~
+~~~{.js}
+// JavaScript
+var image = new dali.ResourceImage( { url:"my_compressed_file.ktx"});
-ARMS texture compression tool<br>
-http://malideveloper.arm.com/develop-for-mali/tools/asset-creation/mali-gpu-texture-compression-tool/ <br>
+~~~
+
+### ARMS texture compression tool
+http://malideveloper.arm.com/develop-for-mali/tools/asset-creation/mali-gpu-texture-compression-tool/
+
Here is an example of using the ARM compression tool.
+
+![ ](../assets/img/texture-atlas/compression-options.jpg)
+![ ](compression-options.jpg)
+
+![ ](../assets/img/texture-atlas/compression-example.jpg)
+![ ](compression-example.jpg)
-<img src="../assets/img/shared/texture-atlas/compression-options.jpg">
-
-<img src="../assets/img/shared/texture-atlas/compression-example.jpg">
+
+As shown above the ETC-1 compression format does not support alpha.
+
+As a work around the tool will export the alpha as a seperate compressed image.
-As shown above the ETC-1 compression format does not support alpha.<br> As a work around the tool will export
-the alpha as a seperate compressed image.
In order to combine both the images you need to use a custom shader.
Here is an example shader:
-```
+
+~~~{.cpp}
+// C++ Code
+ const char* const COMPRESSED_RGB_PLUS_SEPARATE_ALPHA_FRAGMENT_SOURCE =
+ "\n"
+ "void main()\n"
+ "{\n"
+ " vec4 v4Color = (texture2D(sTexture, vTexCoord) * uColor);\n"
+ " v4Color.a = texture2D(sEffect, vTexCoord ).r;\n"
+ " gl_FragColor = v4Color;"
+ "}\n";
+
+
+ mShaderEffect = ShaderEffect::New( "", COMPRESSED_RGB_PLUS_SEPARATE_ALPHA_FRAGMENT_SOURCE);
+
+ mAtlasImageRGB = ResourceImage::New( ATLAS_RGB_FILENAME.KTX);
+
+ mAtlasImageAlpha = ResourceImage::New( ATLAS_ALPHA_FILENAME.KTX );
+
+ mShaderEffect.SetEffectImage( mAtlasImageAlpha );
+
+
+
+ // to create Image Actor
+ ImageActor imageActor = ImageActor::New( mAtlasImageRGB, GetImagePosition( info) );
+
+ imageActor.SetShaderEffect( mShaderEffect );
+
+ imageActor.SetBlendMode(BlendingMode::ON);
+~~~
+
+~~~{.js}
+// JavaScript code
var fragSource = " \
void main() \
{ \
imageActor.setShaderEffect( shaderEffect );
imageActor.setBlendMode( dali.BLENDING_ON );
-```
- @class TextureCompression
+~~~
+
+@class _Guide_Texture_compression
+
+
+*/
- */