mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-13 06:38:31 +09:00
[Fix] (MG_State/RenderState): track front face mode
This commit is contained in:
@@ -405,6 +405,14 @@ namespace MobileGL::MG_State {
|
||||
return m_renderState.GetCullFaceMode();
|
||||
}
|
||||
|
||||
void GLContext::SetFrontFaceMode(FrontFaceMode mode) {
|
||||
m_renderState.SetFrontFaceMode(mode);
|
||||
}
|
||||
|
||||
FrontFaceMode GLContext::GetFrontFaceMode() const {
|
||||
return m_renderState.GetFrontFaceMode();
|
||||
}
|
||||
|
||||
void GLContext::SetScissorBox(IntVec4 box) {
|
||||
m_renderState.SetScissorBox(box);
|
||||
}
|
||||
|
||||
@@ -134,6 +134,8 @@ namespace MobileGL {
|
||||
PixelStoreParameters GetPixelStoreParameters(Bool isUnpack) const;
|
||||
void SetCullFaceMode(CullFaceMode mode);
|
||||
CullFaceMode GetCullFaceMode() const;
|
||||
void SetFrontFaceMode(FrontFaceMode mode);
|
||||
FrontFaceMode GetFrontFaceMode() const;
|
||||
void SetScissorBox(IntVec4 box); // x, y, width, height
|
||||
const IntVec4& GetScissorBox() const; // x, y, width, height
|
||||
|
||||
|
||||
@@ -349,6 +349,17 @@ namespace MobileGL {
|
||||
return m_parameters.CullFaceModeSetting;
|
||||
}
|
||||
|
||||
void RenderState::SetFrontFaceMode(FrontFaceMode mode) {
|
||||
if (m_parameters.FrontFaceModeSetting == mode) return;
|
||||
|
||||
m_parameters.FrontFaceModeSetting = mode;
|
||||
++m_version;
|
||||
}
|
||||
|
||||
FrontFaceMode RenderState::GetFrontFaceMode() const {
|
||||
return m_parameters.FrontFaceModeSetting;
|
||||
}
|
||||
|
||||
// --------------------- Scissor ---------------------
|
||||
void RenderState::SetScissorBox(IntVec4 box) {
|
||||
if (m_parameters.ScissorBox == box) return;
|
||||
|
||||
@@ -87,6 +87,13 @@ namespace MobileGL {
|
||||
Unknown = -1
|
||||
};
|
||||
|
||||
enum class FrontFaceMode {
|
||||
CounterClockwise,
|
||||
Clockwise,
|
||||
FrontFaceModeCount,
|
||||
Unknown = -1
|
||||
};
|
||||
|
||||
enum class CapabilityInput {
|
||||
Blend,
|
||||
ClipDistance0,
|
||||
@@ -171,6 +178,7 @@ namespace MobileGL {
|
||||
// Cull Face
|
||||
Bool CullFaceEnabled = false;
|
||||
CullFaceMode CullFaceModeSetting = CullFaceMode::Back;
|
||||
FrontFaceMode FrontFaceModeSetting = FrontFaceMode::CounterClockwise;
|
||||
|
||||
// Scissor
|
||||
Bool ScissorTestEnabled = false;
|
||||
@@ -235,6 +243,8 @@ namespace MobileGL {
|
||||
// Cull Face
|
||||
void SetCullFaceMode(CullFaceMode mode);
|
||||
CullFaceMode GetCullFaceMode() const;
|
||||
void SetFrontFaceMode(FrontFaceMode mode);
|
||||
FrontFaceMode GetFrontFaceMode() const;
|
||||
|
||||
// Scissor
|
||||
void SetScissorBox(IntVec4 box); // x, y, width, height
|
||||
|
||||
Reference in New Issue
Block a user