void VideoElement::Render(ManagedRenderContext renderContext) { Graphics::Bitmap* bitmap = get_Bitmap(); if (bitmap) { if (true) { gm::RectF dstRect(0.0f, 0.0f, float(bitmap->GetWidth()), float(bitmap->GetHeight())); renderContext.DrawBitmap(bitmap, dstRect, get_Opacity()); } else { Graphics::RenderTarget* rt = renderContext.m_p->GetRT(); ImmediateRenderContext* imm = static_cast<ImmediateRenderContext*>(renderContext.m_p); rt->m_modelView = imm->m_transform; rt->m_modelViewProjection = rt->m_projection * rt->m_modelView; gm::RectF dstRect(80.0f, 20.0f, float(bitmap->GetWidth()), float(bitmap->GetHeight())); //*get_DestRect() Graphics::Direct10::s.Render(renderContext.m_p->GetRT(), bitmap, dstRect); } } }
// virtual void Image::OnRender(Graphics* pGraphics) { if (m_Source) { LDraw::Bitmap* bitmap = m_Source->GetBitmap(); double m_Opacity = get_Opacity(); if (m_Opacity > 0) { float opacity = m_Opacity; if (opacity > 1) opacity = 1; LDraw::CompositingMode oldCompositingMode = pGraphics->GetCompositingMode(); LDraw::CompositingMode compositingMode; switch (get_CompositingMode()) { case SourceOver: compositingMode = LDraw::CompositingModeSourceOver; break; case SourceCopy: compositingMode = LDraw::CompositingModeSourceCopy; break; case Xor: compositingMode = LDraw::CompositingModeXor; break; case Multiply: compositingMode = LDraw::CompositingModeMultiply; break; case Screen: compositingMode = LDraw::CompositingModeScreen; break; default: ASSERT(0); } pGraphics->SetCompositingMode(compositingMode); #if 1 // opacity LDraw::ColorMatrixF colorMatrix( 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, opacity, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); // Gdiplus::ImageAttributes imageAtt; // imageAtt.SetColorMatrix(&colorMatrix, Gdiplus::ColorMatrixFlagsDefault, Gdiplus::ColorAdjustTypeBitmap); #endif pGraphics->DrawImage(bitmap, LDraw::RectF(0, 0, float(m_computedSize.Width), float(m_computedSize.Height)), 0, 0, bitmap->GetWidth(), bitmap->GetHeight(), LDraw::WrapModeClamp, &colorMatrix/*, Gdiplus::UnitPixel, &imageAtt*/); pGraphics->SetCompositingMode(oldCompositingMode); } } }
// virtual __release<LDraw::Brush> SolidColorBrush::CreateBrush(UIElement* pReferencingElement, double scaleX, double scaleY) { int opacity = get_Opacity()*255; if (opacity < 0) opacity = 0; else if (opacity > 255) opacity = 255; Color color = get_Color(); // if (color != NULL) { LDraw::Color dcolor = LDraw::Color(color.get_A()*opacity/255, color.get_R(), color.get_G(), color.get_B()); return new LDraw::SolidBrush(dcolor); } /* else { return NULL; } */ }