This repository was archived by the owner on Feb 25, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +21
-2
lines changed
Expand file tree Collapse file tree 4 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -116,6 +116,18 @@ constexpr MTLIndexType ToMTLIndexType(IndexType type) {
116116 }
117117}
118118
119+ constexpr MTLCullMode ToMTLCullMode (CullMode mode) {
120+ switch (mode) {
121+ case CullMode::kNone :
122+ return MTLCullModeNone;
123+ case CullMode::kBackFace :
124+ return MTLCullModeBack;
125+ case CullMode::kFrontFace :
126+ return MTLCullModeFront;
127+ }
128+ return MTLCullModeNone;
129+ }
130+
119131constexpr MTLBlendOperation ToMTLBlendOperation (BlendOperation type) {
120132 switch (type) {
121133 case BlendOperation::kAdd :
Original file line number Diff line number Diff line change @@ -426,7 +426,7 @@ static bool Bind(PassBindingsCache& pass,
426426 [encoder setFrontFacingWinding: command.winding == WindingOrder: :kClockwise
427427 ? MTLWindingClockwise
428428 : MTLWindingCounterClockwise ];
429- [encoder setCullMode: MTLCullModeNone ];
429+ [encoder setCullMode: ToMTLCullMode (command.cull_mode) ];
430430 [encoder setStencilReferenceValue: command.stencil_reference];
431431 if (command.viewport .has_value ()) {
432432 auto v = command.viewport .value ();
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ struct Command {
7070 std::string label;
7171 PrimitiveType primitive_type = PrimitiveType::kTriangle ;
7272 WindingOrder winding = WindingOrder::kClockwise ;
73+ CullMode cull_mode = CullMode::kNone ;
7374 uint32_t stencil_reference = 0u ;
7475 // ----------------------------------------------------------------------------
7576 // / The viewport coordinates that the rasterizer linearly maps normalized
Original file line number Diff line number Diff line change 1111
1212#include " flutter/fml/hash_combine.h"
1313#include " flutter/fml/macros.h"
14+ #include " impeller/geometry/color.h"
1415#include " impeller/geometry/rect.h"
1516#include " impeller/geometry/scalar.h"
16- #include " impeller/geometry/color.h"
1717
1818namespace impeller {
1919
@@ -135,6 +135,12 @@ enum class WindingOrder {
135135 kCounterClockwise ,
136136};
137137
138+ enum class CullMode {
139+ kNone ,
140+ kFrontFace ,
141+ kBackFace ,
142+ };
143+
138144enum class IndexType {
139145 kUnknown ,
140146 k16bit,
You can’t perform that action at this time.
0 commit comments