bool Prism::Surface::SetTexture(const std::string& aResourceName, const std::string& aFileName, bool aUseSRGB) { aUseSRGB; DL_ASSERT_EXP(aFileName != "" , CU::Concatenate("Shader resource ( %s ) tried to use invalid filePath", aResourceName.c_str())); Texture* tex = Engine::GetInstance()->GetTextureContainer()->GetTexture(aFileName); ID3DX11EffectShaderResourceVariable* shaderVar = myEffect->GetEffect()->GetVariableByName(aResourceName.c_str())->AsShaderResource(); if (shaderVar->IsValid() == false) { std::string errorMsg = "Failed to get ShaderResource: " + aResourceName; //DL_MESSAGE_BOX(errorMsg.c_str(), "Surface Error", MB_ICONWARNING); RESOURCE_LOG(errorMsg.c_str()); return false; } if (aResourceName == "EmissiveTexture") { myEmissive = true; } myTextures.Add(tex); myShaderResources.Add(tex->GetShaderView()); myShaderResourceViews.Add(shaderVar); myFilePaths.Add(aFileName); myShaderResourceNames.Add(aResourceName); return true; }
bool Prism::Surface::SetTexture(const std::string& aResourceName, Texture* aTexture) { DL_ASSERT_EXP(aTexture != nullptr , CU::Concatenate("Shader resource ( %s ) tried to use invalid texture", aResourceName.c_str())); ID3DX11EffectShaderResourceVariable* shaderVar = myEffect->GetEffect()->GetVariableByName(aResourceName.c_str())->AsShaderResource(); if (shaderVar->IsValid() == false) { //DL_MESSAGE_BOX("Failed to get ShaderResource", "Surface Error", MB_ICONWARNING); RESOURCE_LOG("Failed to get ShaderResource"); return false; } if (aResourceName == "EmissiveTexture") { myEmissive = true; } myTextures.Add(aTexture); myShaderResources.Add(aTexture->GetShaderView()); myShaderResourceViews.Add(shaderVar); myShaderResourceNames.Add(aResourceName); return true; }
bool Prism::Surface::SetTexture(const std::string& aResourceName, ID3D11ShaderResourceView* aResource) { ID3DX11EffectShaderResourceVariable* shaderVar = myEffect->GetEffect()->GetVariableByName(aResourceName.c_str())->AsShaderResource(); if (shaderVar->IsValid() == false) { //DL_MESSAGE_BOX("Failed to get ShaderResource", "Surface Error", MB_ICONWARNING); RESOURCE_LOG("Failed to get ShaderResource"); return false; } myShaderResources.Add(aResource); myShaderResourceViews.Add(shaderVar); myShaderResourceNames.Add(aResourceName); return true; }
void Prism::Surface::ReloadSurface() { myTextures.RemoveAll(); myShaderResourceViews.RemoveAll(); myShaderResources.RemoveAll(); for (int i = 0; i < myFilePaths.Size(); ++i) { Texture* tex = Engine::GetInstance()->GetTextureContainer()->GetTexture(myFilePaths[i]); ID3DX11EffectShaderResourceVariable* shaderVar = myEffect->GetEffect()->GetVariableByName(myShaderResourceNames[i].c_str())->AsShaderResource(); if (shaderVar->IsValid() == false) { std::string errorMsg = "Failed to get ShaderResource: " + myShaderResourceNames[i]; //DL_MESSAGE_BOX(errorMsg.c_str(), "Surface Error", MB_ICONWARNING); RESOURCE_LOG(errorMsg.c_str()); } myTextures.Add(tex); myShaderResources.Add(tex->GetShaderView()); myShaderResourceViews.Add(shaderVar); } }
NS_METHOD ChannelMediaResource::CopySegmentToCache(nsIInputStream *aInStream, void *aClosure, const char *aFromSegment, uint32_t aToOffset, uint32_t aCount, uint32_t *aWriteCount) { CopySegmentClosure* closure = static_cast<CopySegmentClosure*>(aClosure); closure->mResource->mDecoder->NotifyDataArrived(aFromSegment, aCount, closure->mResource->mOffset); // Keep track of where we're up to. RESOURCE_LOG("%p [ChannelMediaResource]: CopySegmentToCache at mOffset [%lld] add " "[%d] bytes for decoder[%p]", closure->mResource, closure->mResource->mOffset, aCount, closure->mResource->mDecoder); closure->mResource->mOffset += aCount; closure->mResource->mCacheStream.NotifyDataReceived(aCount, aFromSegment, closure->mPrincipal); *aWriteCount = aCount; return NS_OK; }