1
0
mirror of https://github.com/borgesdan/xn65 synced 2024-12-29 21:54:47 +01:00
xn65/includes/xna/graphics/rasterizerstate.hpp

65 lines
3.0 KiB
C++
Raw Normal View History

2024-04-10 09:51:03 -03:00
#ifndef XNA_GRAPHICS_RASTERIZER_HPP
#define XNA_GRAPHICS_RASTERIZER_HPP
#include "../default.hpp"
2024-05-22 10:56:16 -03:00
#include "gresource.hpp"
2024-04-10 09:51:03 -03:00
namespace xna {
//Contains rasterizer state, which determines how to convert vector data (shapes) into raster data (pixels).
2024-06-24 15:11:07 -03:00
class RasterizerState : public GraphicsResource {
2024-04-10 09:51:03 -03:00
public:
2024-05-22 10:56:16 -03:00
RasterizerState();
RasterizerState(sptr<GraphicsDevice> const& device);
//Specifies the conditions for culling or removing triangles. The default value is CullMode.CounterClockwise.
2024-05-22 10:56:16 -03:00
xna::CullMode CullMode() const;
//Specifies the conditions for culling or removing triangles. The default value is CullMode.CounterClockwise.
2024-05-22 10:56:16 -03:00
void CullMode(xna::CullMode value);
//The fill mode, which defines how a triangle is filled during rendering. The default is FillMode.Solid.
2024-05-22 10:56:16 -03:00
xna::FillMode FillMode() const;
//The fill mode, which defines how a triangle is filled during rendering. The default is FillMode.Solid.
2024-05-22 10:56:16 -03:00
void FillMode(xna::FillMode value);
//Enables or disables multisample antialiasing. The default is true.
bool MultiSampleAntiAlias() const;
//Enables or disables multisample antialiasing. The default is true.
void MultiSampleAntiAlias(bool value);
//Sets or retrieves the depth bias for polygons, which is the amount of bias to apply to the depth of a primitive
//to alleviate depth testing problems for primitives of similar depth. The default value is 0.
float DepthBias() const;
//Sets or retrieves the depth bias for polygons, which is the amount of bias to apply to the depth of a primitive
//to alleviate depth testing problems for primitives of similar depth. The default value is 0.
void DepthBias(float value);
//Gets or sets a bias value that takes into account the slope of a polygon. This bias value is applied to coplanar primitives
// to reduce aliasing and other rendering artifacts caused by z-fighting. The default is 0.
float SlopeScaleDepthBias() const;
//Gets or sets a bias value that takes into account the slope of a polygon. This bias value is applied to coplanar primitives
// to reduce aliasing and other rendering artifacts caused by z-fighting. The default is 0.
void SlopeScaleDepthBias(float value);
//Enables or disables scissor testing. The default is false.
bool ScissorTestEnable() const;
//Enables or disables scissor testing. The default is false.
void ScissorTestEnable(bool value);
//A built-in state object with settings for not culling any primitives.
2024-05-22 10:56:16 -03:00
static uptr<RasterizerState> CullNone();
//A built-in state object with settings for culling primitives with clockwise winding order.
2024-05-22 10:56:16 -03:00
static uptr<RasterizerState> CullClockwise();
//A built-in state object with settings for culling primitives with counter-clockwise winding order.
2024-05-22 10:56:16 -03:00
static uptr<RasterizerState> CullCounterClockwise();
bool Initialize();
bool Apply();
2024-05-22 10:56:16 -03:00
public:
struct PlatformImplementation;
uptr<PlatformImplementation> impl = nullptr;
2024-04-10 09:51:03 -03:00
};
2024-06-24 15:11:07 -03:00
using PRasterizerState = sptr<RasterizerState>;
2024-04-10 09:51:03 -03:00
}
#endif