/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef OD_SR_RENDER_STATE #define OD_SR_RENDER_STATE #include "Gs/GsBaseInclude.h" #include "SrCameraClipper.h" #include "SrTransformationHolder.h" #include "SrTriangleRenderer.h" class OdGsSrVectorizeView; struct GsSrRenderState { // Frame buffer dimensions OdUInt32 m_width, m_height, m_scanLineLength; // Clipping OdGsDCRect m_clipRegion; OdUInt8* m_pScanLines; OdUInt8* m_pDepthBuffer; ODCOLORREF m_color; // Z-clipping OdSrZClipper::ZClipPlanes m_ZClipPlanes; // Triangle rendering TriangleRendering::OdSrTriangleRendererData* m_triangleRendererData; TriangleRendering::OdSrTriangleRenderer* m_triangleRenderer; // Raster image settings enum RasterImageBitDepth { kRIBDMono, kRIBD16Clr, kRIBD256Clr, kRIBD24Bpp, kRIBD32Bpp } m_rasterBitDepth; bool m_bRasterTransparency, m_bRasterRGB; enum RasterImage32TransparencyType { kRI32TTDef, kRI32TT1, kRI32TT8 } m_raster32TranspMode; // Scan lines buffer OdUInt8Array* m_scanLinesArray; // Transformation OdSrTransformationHolder m_transformationHolder; // Clipping area types enum ClippingAreaType { kClippingContourArea = 1 << 0, kPartialUpdateArea = 1 << 1 }; // Stencil buffer for NRC viewports clipping OdUInt8Array m_pStencilScanlines; long m_stencilOffsetX = -1, m_stencilOffsetY = -1; OdUInt32 m_stencilWidth = OdUInt32(-1), m_stencilHeight = OdUInt32(-1); OdUInt8* m_pStencilScanlinesPtr = nullptr; }; #endif // OD_SR_RENDER_STATE