Anmeldungsdatum: Mär 2011
Beiträge: 20
|
Zitat von KN4CK3R Wie man sieht, hab ich das schon länger nimmer gebraucht. Einmal nen Wrapper drum geschrieben, dann vergessen. CPP Code: static std::unique_ptr<OSHGui::Drawing::Renderer> renderer = std::make_unique<Direct3D9Renderer>(device); renderer->BeginRendering(); auto buffer = renderer->CreateGeometryBuffer(); { Graphics g(*buffer); g.FillRectangle(Color::Red(), 9, 5, 300, 200); g.FillCircle(Color::Blue(), 9, 5, 200); } auto &renderTarget = renderer->GetDefaultRenderTarget(); renderTarget->Activate(); buffer->Draw(); renderTarget->Deactivate(); renderer->EndRendering();
Habs jetzt anders gelöst.
CPP Code: if (renderer == std::unique_ptr<Direct3D9Renderer>()) { renderer = std::make_unique<Direct3D9Renderer>(device); } else { renderer->BeginRendering(); { auto buffer = renderer->CreateGeometryBuffer(); { Graphics g(*buffer); g.FillRectangle(Color::Red(), 9, 5, 300, 200); g.FillCircle(Color::Blue(), 9, 5, 200); } _ASM_JUNK(); RenderSurface rendersurface_ = *renderer->GetDefaultRenderTarget(); rendersurface_.AddGeometry(RenderQueueType::Overlay, buffer); rendersurface_.Draw(); rendersurface_.Reset(); renderer->EndRendering(); } }
Weil er will nicht auf die virtuellen Funktionen von RenderTarget, zugreifen will. Aber sonst gehts.
|