+ inline void SetGlExtensionCreateResult(bool result)
+ {
+ createResult = result;
+ }
+ inline virtual bool CreateResource()
+ {
+ ++mExtensionCreateCalls;
+ mCallStack.PushCall("CreateResource", "");
+ return createResult;
+ };
+ inline virtual void DestroyResource()
+ {
+ ++mExtensionDestroyCalls;
+ mCallStack.PushCall("DestroyResource", "");
+ };
+ inline virtual GLenum TargetTexture()
+ {
+ ++mTargetTextureCalls;
+ mCallStack.PushCall("TargetTexture", "");
+ return mTargetTextureError--;
+ };
+ inline virtual void PrepareTexture()
+ {
+ mCallStack.PushCall("PrepareTexture", "");
+ };
+ inline virtual uint32_t GetWidth() const
+ {
+ mCallStack.PushCall("GetWidth", "");
+ return mWidth;
+ };
+ inline virtual uint32_t GetHeight() const
+ {
+ mCallStack.PushCall("GetHeight", "");
+ return mHeight;
+ };
+ inline virtual bool RequiresBlending() const
+ {
+ mCallStack.PushCall("RequiresBlending", "");
+ return true;
+ };
+ inline virtual int GetTextureTarget() const
+ {
+ mCallStack.PushCall("GetTextureTarget", "");
+ return GL_TEXTURE_EXTERNAL_OES;
+ };
+ inline virtual const char* GetCustomFragmentPrefix() const
+ {
+ mCallStack.PushCall("GetCustomFragmentPrefix", "");
+ return "#extension GL_OES_EGL_image_external:require\n";
+ };
+ inline const char* GetCustomSamplerTypename() const override
+ {
+ mCallStack.PushCall("GetCustomSamplerTypename", "");
+ return "samplerExternalOES";
+ };