/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #include "OdaCommon.h" #include "Gs/GsBaseVectorizer.h" #include "Gi/GiEnvironmentTraitsData.h" #include "GsSolidBackgroundImpl.h" // OdGsSolidBackgroundImpl OdGsSolidBackgroundImpl::OdGsSolidBackgroundImpl(const OdGsBackgroundModule *pModule) : OdGsBackgroundImpl(pModule) { } void OdGsSolidBackgroundImpl::display(OdGsBaseVectorizer& view, const OdGiDrawable* /*pDrawable*/, OdGiBackgroundTraitsData* pBackgroundTraits, OdGsPropertiesDirectRenderOutput *pdro) { #ifdef OD_GSBACKGROUND_VERBOSE_ON ODA_TRACE(L"OdGsSolidBackgroundImpl::display\n"); #endif OdGiSolidBackgroundTraitsData *bgt = reinterpret_cast(pBackgroundTraits); RenderingModeHolder holder; OdGePoint3d rect[5]; fillBackgroundRect(view.view(), rect); holder = setRenderingMode(view); if (pdro != NULL && GETBIT(pdro->directRenderOutputFlags(), OdGsPropertiesDirectRenderOutput::DirectRender_PolygoneFlat)) { // Optimized output OdGeMatrix3d m3d; m3d = view.eyeToOutputTransform(); for (int i = 0; i < 5; i++) { rect[i].transformBy(m3d); } pdro->directRenderOutputPolygoneFlat(4, rect, VertexColorResolver().setColor(bgt->color(), view)); } else { view.subEntityTraits().setTrueColor(bgt->color()); view.polygonDc(4, rect); } restoreRenderingMode(view, holder); } //