const nsIntRegion& Layer::GetEffectiveVisibleRegion() { if (ShadowLayer* shadow = AsShadowLayer()) { return shadow->GetShadowVisibleRegion(); } return GetVisibleRegion(); }
const nsIntRegion& Layer::GetEffectiveVisibleRegion() { if (LayerComposite* shadow = AsLayerComposite()) { return shadow->GetShadowVisibleRegion(); } return GetVisibleRegion(); }
void ShadowThebesLayerD3D10::RenderLayer() { if (!mTexture) { return; } // FIXME/bug 662109: synchronize using KeyedMutex nsRefPtr<ID3D10ShaderResourceView> srView; HRESULT hr = device()->CreateShaderResourceView(mTexture, NULL, getter_AddRefs(srView)); if (FAILED(hr)) { NS_WARNING("Failed to create shader resource view for ThebesLayerD3D10."); } SetEffectTransformAndOpacity(); ID3D10EffectTechnique *technique = SelectShader(SHADER_RGB | SHADER_PREMUL | LoadMaskTexture()); effect()->GetVariableByName("tRGB")->AsShaderResource()->SetResource(srView); nsIntRect textureRect = GetVisibleRegion().GetBounds(); nsIntRegionRectIterator iter(mVisibleRegion); while (const nsIntRect *iterRect = iter.Next()) { effect()->GetVariableByName("vLayerQuad")->AsVector()->SetFloatVector( ShaderConstantRectD3D10( (float)iterRect->x, (float)iterRect->y, (float)iterRect->width, (float)iterRect->height) ); effect()->GetVariableByName("vTextureCoords")->AsVector()->SetFloatVector( ShaderConstantRectD3D10( (float)(iterRect->x - textureRect.x) / (float)textureRect.width, (float)(iterRect->y - textureRect.y) / (float)textureRect.height, (float)iterRect->width / (float)textureRect.width, (float)iterRect->height / (float)textureRect.height) ); technique->GetPassByIndex(0)->Apply(0); device()->Draw(4, 0); } // FIXME/bug 662109: synchronize using KeyedMutex // Set back to default. effect()->GetVariableByName("vTextureCoords")->AsVector()-> SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f)); }
void ShadowCanvasLayerD3D9::Swap(const CanvasSurface& aNewFront, bool needYFlip, CanvasSurface* aNewBack) { NS_ASSERTION(aNewFront.type() == CanvasSurface::TSurfaceDescriptor, "ShadowCanvasLayerD3D9::Swap expected CanvasSurface surface"); AutoOpenSurface surf(OPEN_READ_ONLY, aNewFront); if (!mBuffer) { Init(needYFlip); } mBuffer->Upload(surf.Get(), GetVisibleRegion().GetBounds()); *aNewBack = aNewFront; }
void StageCanvas::OnDrawSprites() const { if (m_edited && m_bg) { s2::RenderParams params; params.mt = m_edited->GetLocalMat().Inverted(); ee::SpriteRenderer::Instance()->Draw(m_bg, params); } DrawBG(); m_panel->TraverseSprites(ee::DrawSpritesVisitor(GetVisibleRegion(), GetCameraScale()), ee::DT_VISIBLE); // m_panel->traverseShapes(ee::DrawShapesVisitor(sr), ee::DT_VISIBLE); m_stage->DrawEditOP(); }
void ShadowCanvasLayerD3D9::Swap(const CanvasSurface& aNewFront, bool needYFlip, CanvasSurface* aNewBack) { NS_ASSERTION(aNewFront.type() == CanvasSurface::TSurfaceDescriptor, "ShadowCanvasLayerD3D9::Swap expected CanvasSurface surface"); nsRefPtr<gfxASurface> surf = ShadowLayerForwarder::OpenDescriptor(aNewFront); if (!mBuffer) { Init(needYFlip); } mBuffer->Upload(surf, GetVisibleRegion().GetBounds()); *aNewBack = aNewFront; }
void StageCanvas::OnDrawSprites() const { static bool inited = false; if (!inited) { m_stage->InitConfig(); TidCfg::Instance()->LoadConfig(); inited = true; } DrawGuideLines(); m_stage->TraverseSprites(ee::DrawSpritesVisitor(GetVisibleRegion(), GetCameraScale()), ee::DT_VISIBLE); m_stage->GetSymbol()->DrawTree(nullptr, s2::RenderParams()); m_stage->DrawEditOP(); }
const nsIntRegion& Layer::GetEffectiveVisibleRegion() { return GetVisibleRegion(); }