summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
dbbe326)
Modify BindTexture part for native image source with OES_EGL_image_external
Change-Id: I4c4063d98293f833739870a7c8c42d0ab70d409c
// INTERNAL INCLUDES
#include <dali/public-api/images/native-image-interface.h>
#include <dali/devel-api/images/native-image-interface-extension.h>
// INTERNAL INCLUDES
#include <dali/public-api/images/native-image-interface.h>
#include <dali/devel-api/images/native-image-interface-extension.h>
+#include <dali/integration-api/gl-defines.h>
inline const char* GetCustomFragmentPreFix(){return "#extension GL_OES_EGL_image_external:require\n";}
inline const char* GetCustomSamplerTypename(){return "samplerExternalOES";}
inline const char* GetCustomFragmentPreFix(){return "#extension GL_OES_EGL_image_external:require\n";}
inline const char* GetCustomSamplerTypename(){return "samplerExternalOES";}
+ inline int GetEglImageTextureTarget(){return GL_TEXTURE_EXTERNAL_OES;}
+
};
class DALI_IMPORT_API TestNativeImage : public Dali::NativeImageInterface
};
class DALI_IMPORT_API TestNativeImage : public Dali::NativeImageInterface
virtual const char* GetCustomSamplerTypename() = 0;
/**
virtual const char* GetCustomSamplerTypename() = 0;
/**
+ * @brief Get texture target for binding native image as texture.
+ *
+ * @return Texture target.
+ */
+ virtual int GetEglImageTextureTarget() = 0;
+
+ /**
* @brief Retrieve the extension for the interface.
*
* @return Extension2 pointer if available, NULL otherwise
* @brief Retrieve the extension for the interface.
*
* @return Extension2 pointer if available, NULL otherwise
+ * Wrapper for OpenGL ES 2.0 glBindTexture( target )
+ */
+ void BindTexture( int target, GLuint texture )
+ {
+ if (mBound2dTextureId[ mActiveTextureUnit ] != texture)
+ {
+ mBound2dTextureId[ mActiveTextureUnit ] = texture;
+
+ LOG_GL("BindTexture target(%d) %d\n", target, texture);
+ CHECK_GL( mGlAbstraction, mGlAbstraction.BindTexture(target, texture) );
+ }
+ }
+
+ /**
* Wrapper for OpenGL ES 2.0 glBindTexture(GL_TEXTURE_CUBE_MAP)
*/
void BindCubeMapTexture( GLuint texture )
* Wrapper for OpenGL ES 2.0 glBindTexture(GL_TEXTURE_CUBE_MAP)
*/
void BindCubeMapTexture( GLuint texture )
#include <dali/internal/render/gl-resources/context.h>
#include <dali/internal/render/gl-resources/texture-units.h>
#include <dali/internal/render/gl-resources/gl-texture.h>
#include <dali/internal/render/gl-resources/context.h>
#include <dali/internal/render/gl-resources/texture-units.h>
#include <dali/internal/render/gl-resources/gl-texture.h>
+#include <dali/devel-api/images/native-image-interface-extension.h>
{
// Bind the texture id
mContext.ActiveTexture( textureunit );
{
// Bind the texture id
mContext.ActiveTexture( textureunit );
- mContext.Bind2dTexture(mId);
+ int textureTarget = GL_TEXTURE_2D;
+ NativeImageInterface::Extension* extension = mNativeImage->GetExtension();
+ if( extension )
+ {
+ textureTarget = extension->GetEglImageTextureTarget();
+ }
+
+ mContext.BindTexture( textureTarget, mId );
mNativeImage->PrepareTexture();
}
mNativeImage->PrepareTexture();
}
{
mContext.GenTextures( 1, &mId );
mContext.ActiveTexture( TEXTURE_UNIT_UPLOAD ); // bind in unused unit so rebind works the first time
{
mContext.GenTextures( 1, &mId );
mContext.ActiveTexture( TEXTURE_UNIT_UPLOAD ); // bind in unused unit so rebind works the first time
- mContext.Bind2dTexture( mId );
+
+ int textureTarget = GL_TEXTURE_2D;
+ NativeImageInterface::Extension* extension = mNativeImage->GetExtension();
+ if( extension )
+ {
+ textureTarget = extension->GetEglImageTextureTarget();
+ }
+
+ mContext.BindTexture( textureTarget, mId );
mContext.PixelStorei( GL_UNPACK_ALIGNMENT, 1 ); // We always use tightly packed data
mContext.PixelStorei( GL_UNPACK_ALIGNMENT, 1 ); // We always use tightly packed data