本文整理汇总了C++中Viewport::GetBounds方法的典型用法代码示例。如果您正苦于以下问题:C++ Viewport::GetBounds方法的具体用法?C++ Viewport::GetBounds怎么用?C++ Viewport::GetBounds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Viewport
的用法示例。
在下文中一共展示了Viewport::GetBounds方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Draw
void ImageEffectsTest::Draw()
{
auto presentationParameters = graphicsDevice->GetPresentationParameters();
Viewport viewport = {0, 0, presentationParameters.BackBufferWidth,
presentationParameters.BackBufferHeight};
RenderPass pass;
pass.RenderTargets.emplace_back(renderTarget,
Color::CornflowerBlue.ToVector4());
pass.ClearDepth = 1.0f;
pass.ClearStencil = 0;
pass.Viewport = viewport;
pass.ScissorRect = viewport.GetBounds();
commandList->Reset();
commandList->SetRenderPass(std::move(pass));
commandList->Close();
auto projectionMatrix = Matrix4x4::CreateOrthographicLH(
static_cast<float>(presentationParameters.BackBufferWidth),
static_cast<float>(presentationParameters.BackBufferHeight),
0.0f,
100.0f);
primitiveBatch->Begin(commandList, projectionMatrix);
// Drawing line
const auto w = static_cast<float>(presentationParameters.BackBufferWidth);
const auto h = static_cast<float>(presentationParameters.BackBufferHeight);
primitiveBatch->DrawLine(Vector2{-w * 0.5f, 0.0f}, Vector2{w * 0.5f, 0.0f}, Color{221, 220, 218, 160}, 1.0f);
primitiveBatch->DrawLine(Vector2{0.0f, -h * 0.5f}, Vector2{0.0f, h * 0.5f}, Color{221, 220, 218, 160}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.5f, h * 0.25f}, Vector2{w * 0.5f, h * 0.25f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.5f, -h * 0.25f}, Vector2{w * 0.5f, -h * 0.25f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.25f, -h * 0.5f}, Vector2{-w * 0.25f, h * 0.5f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{w * 0.25f, -h * 0.5f}, Vector2{w * 0.25f, h * 0.5f}, Color{221, 220, 218, 60}, 1.0f);
// Drawing rectangle
primitiveBatch->DrawRectangle(Vector2::Zero, 100, 40, Vector2{1.0f, 1.0f}, Color::White);
primitiveBatch->DrawRectangle(Vector2::Zero, 40, 100, Vector2{0.0f, 0.0f}, Color::Black);
primitiveBatch->DrawRectangle(Vector2::Zero, 30, 30, Vector2{0.5f, 0.5f}, Color::Green);
// Drawing triangle
primitiveBatch->DrawTriangle(
Vector2{0.0f, -40.0f}, Vector2{40.0f, 0.0f}, Vector2{40.0f, -40.0f},
Color::Black, Color::Green, Color::Red);
primitiveBatch->End();
postProcessCompositor.Draw(*commandList, renderTarget);
constexpr bool isStandalone = false;
if constexpr (isStandalone) {
commandQueue->Reset();
commandQueue->PushbackCommandList(commandList);
commandQueue->ExecuteCommandLists();
commandQueue->Present();
}
示例2: Draw
void LineBatchTest::Draw()
{
auto presentationParameters = graphicsDevice->GetPresentationParameters();
Viewport viewport = {0, 0, presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight};
RenderPass pass;
pass.RenderTargets.emplace_back(nullptr, Color::CornflowerBlue.ToVector4());
pass.ClearDepth = 1.0f;
pass.ClearStencil = 0;
pass.Viewport = viewport;
pass.ScissorRect = viewport.GetBounds();
commandList->Reset();
commandList->SetRenderPass(std::move(pass));
{
auto world = Matrix4x4::CreateScale(0.1f) *
Matrix4x4::CreateRotationX(Math::PiOver4<float>) *
Matrix4x4::CreateRotationY(std::sin( Math::TwoPi<float> * static_cast<float>(timer->GetTotalTime().count())));
auto view = Matrix4x4::CreateTranslation(Vector3{0.0f, 0.0f, 50.0f});
auto projectionMatrix = Matrix4x4::CreatePerspectiveFieldOfViewLH(
Math::PiOver4<float>,
static_cast<float>(presentationParameters.BackBufferWidth) / static_cast<float>(presentationParameters.BackBufferHeight),
0.0001f,
500.0f);
lineBatch2->Begin(commandList, world * view * projectionMatrix);
lineBatch2->DrawSphere(Vector3::Zero, 100.0f, Color::Blue, 16);
lineBatch2->End();
}
auto projectionMatrix = Matrix4x4::CreateOrthographicLH(
static_cast<float>(presentationParameters.BackBufferWidth),
static_cast<float>(presentationParameters.BackBufferHeight),
0.0f,
100.0f);
lineBatch->Begin(commandList, projectionMatrix);
for (size_t i = 1; i < path.size(); i++) {
auto start = path[i - 1];
auto end = path[i];
lineBatch->DrawLine(start, end, Color{255, 255, 255, 160});
}
lineBatch->End();
commandList->Close();
constexpr bool isStandalone = false;
if constexpr (isStandalone) {
commandQueue->Reset();
commandQueue->PushbackCommandList(commandList);
commandQueue->ExecuteCommandLists();
commandQueue->Present();
}
示例3: Draw
void PrimitiveBatchTest::Draw()
{
auto presentationParameters = graphicsDevice->GetPresentationParameters();
Viewport viewport = {0, 0, presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight};
RenderPass pass;
pass.RenderTargets.emplace_back(nullptr, Color::CornflowerBlue.ToVector4());
pass.ClearDepth = 1.0f;
pass.ClearStencil = 0;
pass.Viewport = viewport;
pass.ScissorRect = viewport.GetBounds();
commandList->Reset();
commandList->SetRenderPass(std::move(pass));
auto projectionMatrix = Matrix4x4::CreateOrthographicLH(
presentationParameters.BackBufferWidth,
presentationParameters.BackBufferHeight,
0.0f,
100.0f);
const auto w = static_cast<float>(presentationParameters.BackBufferWidth);
const auto h = static_cast<float>(presentationParameters.BackBufferHeight);
const auto t = static_cast<float>(timer->GetTotalTime().count());
primitiveBatch->Begin(commandList, projectionMatrix);
// Drawing line
primitiveBatch->DrawLine(Vector2{-w * 0.5f, 0.0f}, Vector2{w * 0.5f, 0.0f}, Color{221, 220, 218, 160}, 1.0f);
primitiveBatch->DrawLine(Vector2{0.0f, -h * 0.5f}, Vector2{0.0f, h * 0.5f}, Color{221, 220, 218, 160}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.5f, h * 0.25f}, Vector2{w * 0.5f, h * 0.25f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.5f, -h * 0.25f}, Vector2{w * 0.5f, -h * 0.25f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{-w * 0.25f, -h * 0.5f}, Vector2{-w * 0.25f, h * 0.5f}, Color{221, 220, 218, 60}, 1.0f);
primitiveBatch->DrawLine(Vector2{w * 0.25f, -h * 0.5f}, Vector2{w * 0.25f, h * 0.5f}, Color{221, 220, 218, 60}, 1.0f);
// Drawing rectangle
primitiveBatch->DrawRectangle(Vector2::Zero, 100, 40, Vector2{1.0f, 1.0f}, Color::White);
primitiveBatch->DrawRectangle(Vector2::Zero, 40, 100, Vector2{0.0f, 0.0f}, Color::Black);
primitiveBatch->DrawRectangle(Vector2::Zero, 30, 30, Vector2{0.5f, 0.5f}, Color::Green);
// Drawing arc
primitiveBatch->DrawArc(
Vector2{0.0f, 100.0f}, 40.0f,
MathHelper::ToRadians(0.0f), MathHelper::ToRadians(270.0f * Easings::EaseSine::InOut(t)),
80, Color::Yellow);
// Drawing triangle
primitiveBatch->DrawTriangle(
Vector2{0.0f, -40.0f}, Vector2{40.0f, 0.0f}, Vector2{40.0f, -40.0f},
Color::Black, Color::Green, Color::Red);
primitiveBatch->End();
commandList->Close();
constexpr bool isStandalone = false;
if constexpr (isStandalone) {
commandQueue->Reset();
commandQueue->PushbackCommandList(commandList);
commandQueue->ExecuteCommandLists();
commandQueue->Present();
}