const Rect2F& RenderStateSet::GetScissorBoxOrEmpty() const { ScissorRenderState* state = GetState<ScissorRenderState>(); if (state != nullptr) { return state->ScissorBox(); } return Rect2F::Zero; }
ScissorRenderState* ScissorRenderState::Current() { IRender& render = Render::Instance(); ScissorRenderState* state = new ScissorRenderState(); state->Enable(render.GetBoolean(GraphicsBooleanName::ScissorTest)); Rect2I scissorBox; render.GetIntegerArray(GraphicsIntegerArrayName::ScissorBox, scissorBox.GetBuffer()); state->SetScissorBox(Rect2F(scissorBox.Origin.X, scissorBox.Origin.Y, scissorBox.Size.Width, scissorBox.Size.Height)); return state; }
void RenderStateSet::SetScissorBox(const Rect2F& val) { ScissorRenderState* state = AllocState<ScissorRenderState>(); state->SetScissorBox(val); }
bool RenderStateSet::IsScissorEnabled() const { ScissorRenderState* state = GetState<ScissorRenderState>(); return state != nullptr&&state->IsEnabled(); }
const Rect2F* RenderStateSet::TryGetScissorBox() const { ScissorRenderState* state = GetState<ScissorRenderState>(); RETURN_NULL_IF_NULL(state); return &state->ScissorBox(); }
void RenderStateSet::EnableScissor(bool val) { ScissorRenderState* state = AllocState<ScissorRenderState>(); state->Enable(val); }