Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 86e1f67

Browse files
committed
clean code
1 parent 5052f30 commit 86e1f67

File tree

1 file changed

+23
-39
lines changed

1 file changed

+23
-39
lines changed

impeller/renderer/backend/metal/render_pass_mtl.mm

Lines changed: 23 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "flutter/fml/logging.h"
99
#include "flutter/fml/trace_event.h"
1010
#include "impeller/base/backend_cast.h"
11+
#include "impeller/geometry/rect.h"
1112
#include "impeller/renderer/backend/metal/device_buffer_mtl.h"
1213
#include "impeller/renderer/backend/metal/formats_mtl.h"
1314
#include "impeller/renderer/backend/metal/pipeline_mtl.h"
@@ -429,45 +430,28 @@ static bool Bind(PassBindingsCache& pass,
429430
: MTLWindingCounterClockwise];
430431
[encoder setCullMode:ToMTLCullMode(command.cull_mode)];
431432
[encoder setStencilReferenceValue:command.stencil_reference];
432-
if (command.viewport.has_value()) {
433-
auto v = command.viewport.value();
434-
MTLViewport viewport = {
435-
.originX = v.rect.origin.x,
436-
.originY = v.rect.origin.y,
437-
.width = v.rect.size.width,
438-
.height = v.rect.size.height,
439-
.znear = v.depth_range.z_near,
440-
.zfar = v.depth_range.z_far,
441-
};
442-
[encoder setViewport:viewport];
443-
} else {
444-
MTLViewport viewport = {
445-
.originX = 0.0,
446-
.originY = 0.0,
447-
.width = static_cast<double>(GetRenderTargetSize().width),
448-
.height = static_cast<double>(GetRenderTargetSize().height),
449-
.znear = 0.0,
450-
.zfar = 1.0,
451-
};
452-
[encoder setViewport:viewport];
453-
}
454-
if (command.scissor.has_value()) {
455-
auto s = command.scissor.value();
456-
MTLScissorRect scissor = {
457-
.x = static_cast<NSUInteger>(s.origin.x),
458-
.y = static_cast<NSUInteger>(s.origin.y),
459-
.width = static_cast<NSUInteger>(s.size.width),
460-
.height = static_cast<NSUInteger>(s.size.height),
461-
};
462-
[encoder setScissorRect:scissor];
463-
} else {
464-
MTLScissorRect scissor = {
465-
.x = 0,
466-
.y = 0,
467-
.width = static_cast<NSUInteger>(GetRenderTargetSize().width),
468-
.height = static_cast<NSUInteger>(GetRenderTargetSize().height)};
469-
[encoder setScissorRect:scissor];
470-
}
433+
434+
auto v = command.viewport.value_or<Viewport>(
435+
{.rect = Rect::MakeSize(Size(GetRenderTargetSize()))});
436+
MTLViewport viewport = {
437+
.originX = v.rect.origin.x,
438+
.originY = v.rect.origin.y,
439+
.width = v.rect.size.width,
440+
.height = v.rect.size.height,
441+
.znear = v.depth_range.z_near,
442+
.zfar = v.depth_range.z_far,
443+
};
444+
[encoder setViewport:viewport];
445+
446+
auto s = command.scissor.value_or(IRect::MakeSize(GetRenderTargetSize()));
447+
MTLScissorRect scissor = {
448+
.x = static_cast<NSUInteger>(s.origin.x),
449+
.y = static_cast<NSUInteger>(s.origin.y),
450+
.width = static_cast<NSUInteger>(s.size.width),
451+
.height = static_cast<NSUInteger>(s.size.height),
452+
};
453+
[encoder setScissorRect:scissor];
454+
471455
if (!bind_stage_resources(command.vertex_bindings, ShaderStage::kVertex)) {
472456
return false;
473457
}

0 commit comments

Comments
 (0)