- Geometry mGeometry[GEOMETRY_TYPE_MAX+1];
- Shader mShader[SHADER_TYPE_MAX+1];
-
- ImageAtlasManagerPtr mAtlasManager;
- TextureManager mTextureManager;
- NPatchLoader mNPatchLoader;
- SvgRasterizeThread* mSvgRasterizeThread;
- std::unique_ptr< VectorAnimationThread > mVectorAnimationThread;
- std::string mBrokenImageUrl;
- bool mPreMultiplyOnLoad;
+ /**
+ * @brief Returns a cached Texture to use when a visual has failed to correctly render
+ * @param[in] brokenIndex The index of broken image
+ *
+ * @return The broken image texture.
+ */
+ Texture GetBrokenVisualImage(uint32_t brokenIndex);
+
+ /**
+ * @brief Gets the Proper broken image index
+ * @param[in] size The size of actor
+ *
+ * @return The index of broken image
+ */
+ int32_t GetProperBrokenImageIndex(const Vector2& size);
+
+ /**
+ * @brief Apply a texture and uniforms
+ *
+ * @param[in,out] renderer The renderer for broken image
+ * @param[in] index The index of broken image
+ */
+ void ApplyTextureAndUniforms(Renderer& renderer, int index);
+
+ /**
+ * @brief Gets a geometry for npatch image
+ *
+ * @param[in] index the index of broken image
+ * @return The Geometry for NPatch
+ */
+ Geometry GetNPatchGeometry(int index);
+
+ /**
+ * @brief Gets the Npatch Shader object
+ *
+ * @param[in] index The index of broken image
+ * @return The Shader for NPatch
+ */
+ Shader GetNPatchShader(int index);
+
+ /**
+ * @brief Returns a broken image type
+ * @param[in] index BrokenImage index
+ * @return The broken image type.
+ */
+ VisualUrl::Type GetBrokenImageVisualType(int index);
+
+private:
+ struct BrokenImageInfo
+ {
+ BrokenImageInfo()
+ : visualType(),
+ url(""),
+ npatchId(NPatchData::INVALID_NPATCH_DATA_ID),
+ texture(),
+ width(0),
+ height(0)
+ {
+ }
+
+ ~BrokenImageInfo()
+ {
+ }
+
+ // Data
+ VisualUrl::Type visualType;
+ std::string url;
+ NPatchData::NPatchDataId npatchId;
+ Texture texture;
+ uint32_t width;
+ uint32_t height;
+ };
+
+ Geometry mGeometry[GEOMETRY_TYPE_MAX + 1];
+ Shader mShader[SHADER_TYPE_MAX + 1];
+
+ ImageAtlasManagerPtr mAtlasManager;
+ TextureManager mTextureManager;
+ NPatchLoader mNPatchLoader;
+
+ SvgRasterizeThread* mSvgRasterizeThread;
+ std::unique_ptr<VectorAnimationManager> mVectorAnimationManager;
+ bool mPreMultiplyOnLoad;
+ std::vector<BrokenImageInfo> mBrokenImageInfoContainer;
+ std::string mDefaultBrokenImageUrl;
+ bool mUseDefaultBrokenImageOnly;