diff options
Diffstat (limited to 'libs/rs/driver/rsdShader.cpp')
-rw-r--r-- | libs/rs/driver/rsdShader.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/rs/driver/rsdShader.cpp b/libs/rs/driver/rsdShader.cpp index 8bf3207..dc7f8ab 100644 --- a/libs/rs/driver/rsdShader.cpp +++ b/libs/rs/driver/rsdShader.cpp @@ -139,7 +139,12 @@ void RsdShader::appendTextures() { char buf[256]; for (uint32_t ct=0; ct < mRSProgram->mHal.state.texturesCount; ct++) { if (mRSProgram->mHal.state.textureTargets[ct] == RS_TEXTURE_2D) { - snprintf(buf, sizeof(buf), "uniform sampler2D UNI_Tex%i;\n", ct); + Allocation *a = mRSProgram->mHal.state.textures[ct]; + if (a && a->mHal.state.surfaceTextureID) { + snprintf(buf, sizeof(buf), "uniform samplerExternalOES UNI_Tex%i;\n", ct); + } else { + snprintf(buf, sizeof(buf), "uniform sampler2D UNI_Tex%i;\n", ct); + } mTextureTargets[ct] = GL_TEXTURE_2D; } else { snprintf(buf, sizeof(buf), "uniform samplerCube UNI_Tex%i;\n", ct); |