diff --git a/source/light/sxlight.cpp b/source/light/sxlight.cpp index 5cf9832aa767d87938a082021b372586f64e1f3c..7702758873388ac4ee5f305a8e39730534c6a638 100644 --- a/source/light/sxlight.cpp +++ b/source/light/sxlight.cpp @@ -11,14 +11,6 @@ See the license in LICENSE #include "light.h" -#if !defined(DEF_STD_REPORT) -#define DEF_STD_REPORT -report_func g_fnReportf = DefReport; -#endif - -#define ML_PRECOND(retval) -//if(!ArrLights){LibReport(-1, "%s - sxmtlligth is not init", GEN_MSG_LOCATION); return retval;} - //########################################################################## SX_LIB_API long SLight_0GetVersion() @@ -26,11 +18,6 @@ SX_LIB_API long SLight_0GetVersion() return SXMATERIAL_LIGTH_VERSION; } -SX_LIB_API void SLight_Dbg_Set(report_func rf) -{ - g_fnReportf = rf; -} - SX_LIB_API void SLight_0Create(const char *szName, bool isUnic) { if (szName && strlen(szName) > 1) diff --git a/source/light/sxlight.h b/source/light/sxlight.h index 0c7ca517c83a0503cfe5aa9fc193edfae8b83ef8..233bbf251b2e2f7e76e9a8ad917db77ed5cfab1e 100644 --- a/source/light/sxlight.h +++ b/source/light/sxlight.h @@ -47,9 +47,6 @@ See the license in LICENSE //! версия подсистемы SX_LIB_API long SLight_0GetVersion(); -//! установить функцию обработки сообщений -SX_LIB_API void SLight_Dbg_Set(report_func rf); - //! инициализция подсистемы SX_LIB_API void SLight_0Create( const char *szName, //!< присваиваемое имя diff --git a/source/render/RenderPipeline.cpp b/source/render/RenderPipeline.cpp index 547ed179a49aac35106ed63e8129f67f6c27dec0..e5efd578440ecf469f415e6cd35e83a55da8d154 100644 --- a/source/render/RenderPipeline.cpp +++ b/source/render/RenderPipeline.cpp @@ -731,33 +731,6 @@ void CRenderPipeline::renderFrame(float fDeltaTime) //showTexture(m_pLightAmbientDiffuse); } -#if 0 - Core_PStartSection(PERF_SECTION_SHADOW_UPDATE); - SRender_UpdateShadow(timeDelta); - Core_PEndSection(PERF_SECTION_SHADOW_UPDATE); - - - - Core_PStartSection(PERF_SECTION_LIGHTING); - SRender_ComLighting(timeDelta); - - if(SGCore_SkyBoxIsCr()) - { - Core_PStartSection(PERF_SECTION_SKYBOX); - SRender_RenderSky(timeDelta); - Core_PEndSection(PERF_SECTION_SKYBOX); - } - - Core_PStartSection(PERF_SECTION_TONEMAPPING); - static const float * r_hdr_adapted_coef = GET_PCVAR_FLOAT("r_hdr_adapted_coef"); -// SGCore_ToneMappingCom(timeDelta, (r_hdr_adapted_coef ? (*r_hdr_adapted_coef) : 0.03f)); - Core_PEndSection(PERF_SECTION_TONEMAPPING); - - Core_PEndSection(PERF_SECTION_LIGHTING); - - SGCore_ShaderUnBind(); -#endif - end: mem_release(pBackBuf); mem_release(pSceneBuf); diff --git a/source/render/gdata.cpp b/source/render/gdata.cpp index 31b6fb2bbab21111b3aa664e5a1a50cfd677ef77..68dab7291c0b4bc7c5f6e51ec1f22393bb2e148c 100644 --- a/source/render/gdata.cpp +++ b/source/render/gdata.cpp @@ -26,13 +26,6 @@ namespace gdata float3 vConstCurrCamPos; float3 vConstCurrCamDir; - float4_t vCamWalkParamEditor = float4_t( - 10.f, //!< простое движенеи вперед - 5.f, //!< коэфициент ускорения - 0.7f, //!< коэфициент от основного движения в стороны - 0.5f //!< коэфициент от основного движения назад - ); - //матрицы void InitAllMatrix(); float4x4 mCamView; @@ -49,86 +42,26 @@ namespace gdata //! загрузка всех необходимых шейдеров void InitAllShaders(); - //! вершинные шейдеры - namespace vs - { - ID idScreenOut; - ID idResPos; - }; - - //! пиксельные шейдеры - namespace ps - { - ID idScreenOut; - ID idComLightingNonShadow; - ID idComLightingSpotNonShadow; - ID idComLightingGI; - ID idComLightingShadow; - ID idComLightingSpotShadow; - ID idComLightingPSSMShadow; - - ID idBlendAmbientSpecDiffColor; - - ID idStencilStr; - ID idStencilColumn; - ID idStencilStrColumn; - //ID idUnionAlpha; - - ID idHDRinitLuminance; - ID idHDRAdaptLuminance; - ID idHDRToneMapping; - }; - namespace kit { ID idScreenOut; - ID idStencilStr; - ID idStencilColumn; - ID idStencilStrColumn; - ID idBlendAmbientSpecDiffColor; - //ID idUnionAlpha; - ID idComLightingNonShadow; - ID idComLightingShadow; - ID idComLightingSpotNonShadow; - ID idComLightingSpotShadow; - ID idComLightingPSSMShadow; - ID idComLightingGI; - - ID idHDRinitLuminance; - ID idHDRAdaptLuminance; - ID idHDRToneMapping; }; }; namespace rstates { IGXDepthStencilState *pDepthStencilStateNoZ; - IGXDepthStencilState *pDepthStencilStateMrtStage0; - IGXDepthStencilState *pDepthStencilStateMrtStage1; - IGXDepthStencilState *pDepthStencilStateLightBound; - IGXDepthStencilState *pDepthStencilStateLightClear; - IGXDepthStencilState *pDepthStencilStateLightShadowNonGlobal; - IGXDepthStencilState *pDepthStencilStateLightShadowGlobal; IGXDepthStencilState *pDepthStencilStateParticles; IGXSamplerState *pSamplerPointClamp; IGXSamplerState *pSamplerLinearWrap; - IGXSamplerState *pSamplerLinearMirror; IGXSamplerState *pSamplerLinearClamp; - IGXSamplerState *pSamplerLinearBorder; - IGXSamplerState *pSamplerAnisotopicClamp; - IGXSamplerState *pSamplerAnisotopicWrap; IGXSamplerState *pSamplerScene = NULL; - IGXBlendState *pBlendRed; IGXBlendState *pBlendAlpha; - IGXBlendState *pBlendAlphaOneOne; - IGXBlendState *pBlendAlphaSky; - IGXRasterizerState *pRasterizerCullFront; IGXRasterizerState *pRasterizerCullNone; - IGXRasterizerState *pRasterizerConservative; }; }; @@ -150,101 +83,24 @@ void gdata::InitAllMatrix() gdata::vNearFar.y = *r_far; gdata::fProjFov = *r_default_fov; - // gdata::mCamProj = SMMatrixPerspectiveFovLH(gdata::fProjFov, vWinSize.x / vWinSize.y, gdata::vNearFar.x, gdata::vNearFar.y); gdata::mCamProj = SMMatrixPerspectiveFovLH(gdata::fProjFov, vWinSize.x / vWinSize.y, gdata::vNearFar.y, gdata::vNearFar.x); - //gdata::MCamProj = SMMatrixOrthographicLH(vWinSize.x / 4, vWinSize.y / 4, gdata::NearFar.x, gdata::NearFar.y); -// gdata::mLightProj = SMMatrixPerspectiveFovLH(gdata::fProjFov, vWinSize.x / vWinSize.y, gdata::vNearFar.x, G_DATA_LIGHT_FAR); - //gdata::MLightProj = SMMatrixOrthographicLH(vWinSize.x / 4, vWinSize.y / 4, gdata::NearFar.x, G_DATA_LIGHT_FAR); - -// gdata::mRefPlaneSkyProj = SMMatrixPerspectiveFovLH(gdata::fProjFov, vWinSize.x / vWinSize.y, gdata::vNearFar.x, G_DATA_LIGHT_FAR); -// gdata::mRefCubeSkyProj = SMMatrixPerspectiveFovLH(SM_PI * 0.5f, 1, gdata::vNearFar.x, G_DATA_LIGHT_FAR); Core_RMatrixSet(G_RI_MATRIX_OBSERVER_PROJ, &gdata::mCamProj); Core_RMatrixSet(G_RI_MATRIX_LIGHT_PROJ, &gdata::mLightProj); - - /*Core_RFloatSet(G_RI_FLOAT_OBSERVER_NEAR, gdata::NearFar.x); - Core_RFloatSet(G_RI_FLOAT_OBSERVER_FAR, gdata::NearFar.y); - Core_RFloatSet(G_RI_FLOAT_OBSERVER_FOV, gdata::ProjFov);*/ } void gdata::shaders_id::InitAllShaders() { - gdata::shaders_id::vs::idScreenOut = SGCore_ShaderLoad(SHADER_TYPE_VERTEX, "pp_quad_render.vs"); - gdata::shaders_id::ps::idScreenOut = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_quad_render.ps"); - - gdata::shaders_id::vs::idResPos = SGCore_ShaderLoad(SHADER_TYPE_VERTEX, "pp_res_pos.vs", "pp_quad_render_res_pos.vs"); - - gdata::shaders_id::ps::idComLightingNonShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_nonshadow.ps"); - GXMacro Defines_IS_SPOT[] = {{"IS_SPOT", ""}, {0, 0}}; - gdata::shaders_id::ps::idComLightingSpotNonShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_spot_nonshadow.ps", Defines_IS_SPOT); - GXMacro Defines_IS_SHADOWED[] = { { "IS_SHADOWED", "" }, { 0, 0 } }; - gdata::shaders_id::ps::idComLightingShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_shadow.ps", Defines_IS_SHADOWED); - GXMacro Defines_IS_SPOT_SHADOWED[] = {{"IS_SHADOWED", ""}, {"IS_SPOT", ""}, {0, 0}}; - gdata::shaders_id::ps::idComLightingSpotShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_spot_shadow.ps", Defines_IS_SPOT_SHADOWED); - GXMacro Defines_IS_PSSM_SHADOWED[] = {{"IS_SHADOWED", ""}, {"IS_PSSM", ""}, {0, 0}}; - gdata::shaders_id::ps::idComLightingPSSMShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_pssm_shadow.ps", Defines_IS_PSSM_SHADOWED); - gdata::shaders_id::ps::idBlendAmbientSpecDiffColor = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_blend.ps"); - - //gdata::shaders_id::ps::idUnionAlpha = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_union_alpha.ps"); - - GXMacro Defines_STR[] = { { "_STR_", "" }, { 0, 0 } }; - gdata::shaders_id::ps::idStencilStr = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_alpha_stencil_mark.ps", "pp_stencil_str.ps", Defines_STR); - GXMacro Defines_COLUMN[] = { { "_COLUMN_", "" }, { 0, 0 } }; - gdata::shaders_id::ps::idStencilColumn = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_alpha_stencil_mark.ps", "pp_stencil_column.ps", Defines_COLUMN); - GXMacro Defines_COLUMN_STR[] = { { "_COLUMN_STR_", "" }, { 0, 0 } }; - gdata::shaders_id::ps::idStencilStrColumn = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_alpha_stencil_mark.ps", "pp_stencil_str_column.ps", Defines_COLUMN_STR); - - gdata::shaders_id::kit::idScreenOut = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idScreenOut); - gdata::shaders_id::kit::idStencilStr = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idStencilStr); - gdata::shaders_id::kit::idStencilColumn = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idStencilColumn); - gdata::shaders_id::kit::idStencilStrColumn = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idStencilStrColumn); - gdata::shaders_id::kit::idBlendAmbientSpecDiffColor = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idBlendAmbientSpecDiffColor); - //gdata::shaders_id::kit::idUnionAlpha = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idUnionAlpha); - gdata::shaders_id::kit::idComLightingNonShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingNonShadow); - gdata::shaders_id::kit::idComLightingShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingShadow); - gdata::shaders_id::kit::idComLightingSpotNonShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingSpotNonShadow); - gdata::shaders_id::kit::idComLightingSpotShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingSpotShadow); - gdata::shaders_id::kit::idComLightingPSSMShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingPSSMShadow); - - + gdata::shaders_id::kit::idScreenOut = SGCore_ShaderCreateKit(SGCore_ShaderLoad(SHADER_TYPE_VERTEX, "pp_quad_render.vs"), SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_quad_render.ps")); + GXDepthStencilDesc dsDesc; dsDesc.useDepthTest = FALSE; dsDesc.useDepthWrite = FALSE; gdata::rstates::pDepthStencilStateNoZ = gdata::pDXDevice->createDepthStencilState(&dsDesc); - dsDesc.useStencilTest = TRUE; - dsDesc.cmpFuncDepth = GXCMP_ALWAYS; - dsDesc.stencilTestFront.opPass = GXSTENCIL_OP_REPLACE; - gdata::rstates::pDepthStencilStateMrtStage0 = gdata::pDXDevice->createDepthStencilState(&dsDesc); - - dsDesc.useDepthTest = TRUE; dsDesc.cmpFuncDepth = GXCMP_GREATER_EQUAL; - dsDesc.stencilTestFront.cmpFunc = GXCMP_NOT_EQUAL; - dsDesc.stencilTestFront.opPass = GXSTENCIL_OP_DECR; - gdata::rstates::pDepthStencilStateMrtStage1 = gdata::pDXDevice->createDepthStencilState(&dsDesc); - - dsDesc.useDepthWrite = FALSE; - dsDesc.stencilTestFront.cmpFunc = GXCMP_ALWAYS; - dsDesc.stencilTestFront.opDepthFail = GXSTENCIL_OP_INCR; - dsDesc.stencilTestFront.opPass = GXSTENCIL_OP_KEEP; - dsDesc.stencilTestBack.opDepthFail = GXSTENCIL_OP_DECR; - gdata::rstates::pDepthStencilStateLightBound = gdata::pDXDevice->createDepthStencilState(&dsDesc); - - dsDesc.useDepthTest = FALSE; - dsDesc.useDepthWrite = FALSE; - dsDesc.stencilTestFront.cmpFunc = GXCMP_EQUAL; - dsDesc.stencilTestFront.opDepthFail = GXSTENCIL_OP_ZERO; - dsDesc.stencilTestFront.opFail = GXSTENCIL_OP_ZERO; - dsDesc.stencilTestFront.opPass = GXSTENCIL_OP_KEEP; - gdata::rstates::pDepthStencilStateLightShadowNonGlobal = gdata::pDXDevice->createDepthStencilState(&dsDesc); - - dsDesc.stencilTestFront.opPass = GXSTENCIL_OP_ZERO; - gdata::rstates::pDepthStencilStateLightClear = gdata::pDXDevice->createDepthStencilState(&dsDesc); - dsDesc.useStencilTest = FALSE; - gdata::rstates::pDepthStencilStateLightShadowGlobal = gdata::pDXDevice->createDepthStencilState(&dsDesc); - dsDesc.useDepthTest = TRUE; dsDesc.useDepthWrite = FALSE; gdata::rstates::pDepthStencilStateParticles = gdata::pDXDevice->createDepthStencilState(&dsDesc); @@ -260,68 +116,22 @@ void gdata::shaders_id::InitAllShaders() samplerDesc.filter = GXFILTER_MIN_MAG_MIP_LINEAR; gdata::rstates::pSamplerLinearWrap = gdata::pDXDevice->createSamplerState(&samplerDesc); - samplerDesc.addressU = samplerDesc.addressV = samplerDesc.addressW = GXTEXTURE_ADDRESS_MIRROR; - gdata::rstates::pSamplerLinearMirror = gdata::pDXDevice->createSamplerState(&samplerDesc); - samplerDesc.addressU = samplerDesc.addressV = samplerDesc.addressW = GXTEXTURE_ADDRESS_CLAMP; gdata::rstates::pSamplerLinearClamp = gdata::pDXDevice->createSamplerState(&samplerDesc); - samplerDesc.filter = GXFILTER_ANISOTROPIC; - gdata::rstates::pSamplerAnisotopicClamp = gdata::pDXDevice->createSamplerState(&samplerDesc); - - samplerDesc.addressU = samplerDesc.addressV = samplerDesc.addressW = GXTEXTURE_ADDRESS_WRAP; - gdata::rstates::pSamplerAnisotopicWrap = gdata::pDXDevice->createSamplerState(&samplerDesc); - - samplerDesc.addressU = samplerDesc.addressV = samplerDesc.addressW = GXTEXTURE_ADDRESS_BORDER; - samplerDesc.filter = GXFILTER_MIN_MAG_MIP_LINEAR; - samplerDesc.f4BorderColor = float4_t(0.0f, 0.0f, 0.0f, 0.0f); - gdata::rstates::pSamplerLinearBorder = gdata::pDXDevice->createSamplerState(&samplerDesc); - GXBlendDesc blendDesc; - blendDesc.renderTarget[0].u8RenderTargetWriteMask = GXCOLOR_WRITE_ENABLE_RED; - gdata::rstates::pBlendRed = gdata::pDXDevice->createBlendState(&blendDesc); - - blendDesc.renderTarget[0].u8RenderTargetWriteMask = GXCOLOR_WRITE_ENABLE_ALL; blendDesc.renderTarget[0].useBlend = TRUE; blendDesc.renderTarget[0].blendSrcColor = blendDesc.renderTarget[0].blendSrcAlpha = GXBLEND_INV_DEST_ALPHA; blendDesc.renderTarget[0].blendDestColor = blendDesc.renderTarget[0].blendDestAlpha = GXBLEND_DEST_ALPHA; gdata::rstates::pBlendAlpha = gdata::pDXDevice->createBlendState(&blendDesc); - blendDesc.renderTarget[0].blendSrcColor = blendDesc.renderTarget[0].blendSrcAlpha = GXBLEND_ONE; - blendDesc.renderTarget[0].blendDestColor = blendDesc.renderTarget[0].blendDestAlpha = GXBLEND_ONE; - gdata::rstates::pBlendAlphaOneOne = gdata::pDXDevice->createBlendState(&blendDesc); - - blendDesc.renderTarget[0].blendSrcColor = blendDesc.renderTarget[0].blendSrcAlpha = GXBLEND_SRC_ALPHA; - blendDesc.renderTarget[0].blendDestColor = blendDesc.renderTarget[0].blendDestAlpha = GXBLEND_INV_SRC_ALPHA; - gdata::rstates::pBlendAlphaSky = gdata::pDXDevice->createBlendState(&blendDesc); - GXRasterizerDesc rasterizerDesc; - //rasterizerDesc.useConservativeRasterization = true; - gdata::rstates::pRasterizerConservative = gdata::pDXDevice->createRasterizerState(&rasterizerDesc); - - //rasterizerDesc.useConservativeRasterization = false; - rasterizerDesc.cullMode = GXCULL_FRONT; - gdata::rstates::pRasterizerCullFront = gdata::pDXDevice->createRasterizerState(&rasterizerDesc); - rasterizerDesc.cullMode = GXCULL_NONE; gdata::rstates::pRasterizerCullNone = gdata::pDXDevice->createRasterizerState(&rasterizerDesc); - - - gdata::shaders_id::ps::idComLightingGI = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_gi.ps"); - gdata::shaders_id::kit::idComLightingGI = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingGI); - - gdata::shaders_id::ps::idHDRinitLuminance = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "hdr_luminance.ps"); - gdata::shaders_id::kit::idHDRinitLuminance = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idHDRinitLuminance); - - gdata::shaders_id::ps::idHDRAdaptLuminance = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "hdr_adapt.ps"); - gdata::shaders_id::kit::idHDRAdaptLuminance = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idHDRAdaptLuminance); - - gdata::shaders_id::ps::idHDRToneMapping = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "hdr_tonemapping.ps"); - gdata::shaders_id::kit::idHDRToneMapping = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idHDRToneMapping); } diff --git a/source/render/gdata.h b/source/render/gdata.h index be2f2485fb4d7a8b4ea9bba287932cfa9086533e..05cb844c205b5eb46758567a97c10dcc35e8a845 100644 --- a/source/render/gdata.h +++ b/source/render/gdata.h @@ -71,9 +71,6 @@ namespace gdata //! направление взгляда камеры extern float3 vConstCurrCamDir; - //! параметры перемещения камеры по умолчанию - extern float4_t vCamWalkParamEditor; - //! инициализация матриц void InitAllMatrix(); @@ -101,87 +98,26 @@ namespace gdata //! загрузка всех необходимых шейдеров void InitAllShaders(); - //! вершинные шейдеры - namespace vs - { - extern ID idScreenOut; - extern ID idResPos; - }; - - //! пиксельные шейдеры - namespace ps - { - extern ID idScreenOut; - extern ID idComLightingNonShadow; - extern ID idComLightingSpotNonShadow; - extern ID idComLightingGI; - extern ID idComLightingShadow; - extern ID idComLightingSpotShadow; - extern ID idComLightingPSSMShadow; - - extern ID idBlendAmbientSpecDiffColor; - - - extern ID idStencilStr; - extern ID idStencilColumn; - extern ID idStencilStrColumn; - //extern ID idUnionAlpha; - - extern ID idHDRinitLuminance; - extern ID idHDRAdaptLuminance; - extern ID idHDRToneMapping; - }; - namespace kit { extern ID idScreenOut; - extern ID idStencilStr; - extern ID idStencilColumn; - extern ID idStencilStrColumn; - extern ID idBlendAmbientSpecDiffColor; - //extern ID idUnionAlpha; - extern ID idComLightingNonShadow; - extern ID idComLightingSpotNonShadow; - extern ID idComLightingShadow; - extern ID idComLightingSpotShadow; - extern ID idComLightingPSSMShadow; - extern ID idComLightingGI; - - extern ID idHDRinitLuminance; - extern ID idHDRAdaptLuminance; - extern ID idHDRToneMapping; }; }; namespace rstates { extern IGXDepthStencilState *pDepthStencilStateNoZ; - extern IGXDepthStencilState *pDepthStencilStateMrtStage0; - extern IGXDepthStencilState *pDepthStencilStateMrtStage1; - extern IGXDepthStencilState *pDepthStencilStateLightBound; - extern IGXDepthStencilState *pDepthStencilStateLightClear; - extern IGXDepthStencilState *pDepthStencilStateLightShadowNonGlobal; - extern IGXDepthStencilState *pDepthStencilStateLightShadowGlobal; extern IGXDepthStencilState *pDepthStencilStateParticles; extern IGXSamplerState *pSamplerPointClamp; extern IGXSamplerState *pSamplerLinearWrap; - extern IGXSamplerState *pSamplerLinearMirror; extern IGXSamplerState *pSamplerLinearClamp; - extern IGXSamplerState *pSamplerLinearBorder; - extern IGXSamplerState *pSamplerAnisotopicClamp; - extern IGXSamplerState *pSamplerAnisotopicWrap; extern IGXSamplerState *pSamplerScene; - extern IGXBlendState *pBlendRed; extern IGXBlendState *pBlendAlpha; - extern IGXBlendState *pBlendAlphaOneOne; - extern IGXBlendState *pBlendAlphaSky; - extern IGXRasterizerState *pRasterizerCullFront; extern IGXRasterizerState *pRasterizerCullNone; - extern IGXRasterizerState *pRasterizerConservative; }; }; diff --git a/source/render/render_func.cpp b/source/render/render_func.cpp index 336e9b7e0efe253c5f69cf258082d7bbd7ea417f..2f64a88467dd258b63ad6e837973c2b222cdfe79 100644 --- a/source/render/render_func.cpp +++ b/source/render/render_func.cpp @@ -288,55 +288,6 @@ void rfunc::ChangeModeWindow() *r_resize = RENDER_RESIZE_CHANGE; } -void rfunc::FullScreenChangeSizeAbs() -{ - static bool *r_win_windowed = (bool*)GET_PCVAR_BOOL("r_win_windowed"); - - if (r_win_windowed == NULL || (*r_win_windowed)) - return; - - int iCountModes = 0; - static const DEVMODE *pModes = SGCore_GetModes(&iCountModes); - - static int iFullScreenWidth = 800; - static int iFullScreenHeight = 600; - - if (pModes) - { - iFullScreenWidth = pModes[iCountModes - 1].dmPelsWidth; - iFullScreenHeight = pModes[iCountModes - 1].dmPelsHeight; - pModes = 0; - } - - static int * r_win_width = (int*)GET_PCVAR_INT("r_win_width"); - static int * r_win_height = (int*)GET_PCVAR_INT("r_win_height"); - - if (!r_win_width || !r_win_height) - return; - - static int r_win_width_old = *r_win_width; - static int r_win_height_old = *r_win_height; - - if (*r_win_width == iFullScreenWidth && *r_win_height == iFullScreenHeight) - { - *r_win_width = r_win_width_old; - *r_win_height = r_win_height_old; - } - else - { - r_win_width_old = *r_win_width; - r_win_height_old = *r_win_height; - - *r_win_width = iFullScreenWidth; - *r_win_height = iFullScreenHeight; - - //LibReport(REPORT_MSG_LEVEL_WARNING, "iFullScreenWidth %d, iFullScreenHeight %d \n", iFullScreenWidth, iFullScreenHeight); - } - - static int *r_resize = (int*)GET_PCVAR_INT("r_resize"); - *r_resize = RENDER_RESIZE_CHANGE; -} - //########################################################################## void rfunc::UpdateView() @@ -381,76 +332,6 @@ void rfunc::UpdateView() //########################################################################## -void rfunc::RenderSky(DWORD timeDelta) -{ -#if 0 - IGXSurface *ColorSurf, *BackBuf; - ColorSurf = SGCore_GbufferGetRT(DS_RT_SCENELIGHT)->getMipmap(); - //ColorSurf = SGCore_GbufferGetRT(DS_RT_COLOR)->getMipmap(); - BackBuf = gdata::pDXDevice->getColorTarget(); - gdata::pDXDevice->setColorTarget(ColorSurf); - - gdata::pDXDevice->clear(GX_CLEAR_COLOR, RENDER_DEFAUL_BACKGROUND_COLOR); - -// SetSamplerFilter(0, 2, D3DTEXF_ANISOTROPIC); - gdata::pDXDevice->setRasterizerState(NULL); - for(UINT i = 0; i <= 2; ++i) - { - gdata::pDXDevice->setSamplerState(gdata::rstates::pSamplerAnisotopicClamp, i); - } - - if (SGCore_SkyBoxIsCr() && SGCore_SkyBoxGetUse() && SGCore_SkyBoxIsLoadTex()) - { - // gdata::pDXDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); - // SetSamplerAddress(0, 2, D3DTADDRESS_CLAMP); - SGCore_SkyBoxRender(timeDelta, &float3(gdata::vConstCurrCamPos.x, gdata::vConstCurrCamPos.y/* + (SXGC_SKYBOX_SIZE * 0.5 - 10)*/, gdata::vConstCurrCamPos.z)); - } - -// gdata::pDXDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); -// gdata::pDXDevice->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE); - -#ifdef _GRAPHIX_API - gdata::pDXDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); - gdata::pDXDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1); -#endif - -// gdata::pDXDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); -// gdata::pDXDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); - gdata::pDXDevice->setBlendState(gdata::rstates::pBlendAlphaSky); - -// gdata::pDXDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); - - if (SGCore_SkyCloudsIsCr() && SGCore_SkyCloudsGetUse() && SGCore_SkyCloudsIsLoadTex()) - { - for(UINT i = 0; i <= 2; ++i) - { - gdata::pDXDevice->setSamplerState(gdata::rstates::pSamplerAnisotopicWrap, i); - } - // SetSamplerAddress(0, 2, D3DTADDRESS_MIRROR); - gdata::pDXDevice->setRasterizerState(gdata::rstates::pRasterizerCullNone); - SGCore_SkyCloudsRender(timeDelta, &float3(gdata::vConstCurrCamPos.x, gdata::vConstCurrCamPos.y + 150, gdata::vConstCurrCamPos.z), false); - gdata::pDXDevice->setRasterizerState(NULL); - } - - gdata::pDXDevice->setTexture(SGCore_GbufferGetRT(DS_RT_SCENELIGHT2)); - - SGCore_ShaderBind(gdata::shaders_id::kit::idScreenOut); - -// gdata::pDXDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); - - SGCore_ScreenQuadDraw(); - - SGCore_ShaderUnBind(); - - mem_release(ColorSurf); - - gdata::pDXDevice->setColorTarget(BackBuf); - mem_release(BackBuf); - - gdata::pDXDevice->setBlendState(NULL); -// gdata::pDXDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); -#endif -} void rfunc::RenderParticles(DWORD timeDelta) { diff --git a/source/render/render_func.h b/source/render/render_func.h index f0a878604686b1c7a660028e5c2e3ee86cdca755..1888fe52e2df319dacb8595892b33ad01ba2bf9a 100644 --- a/source/render/render_func.h +++ b/source/render/render_func.h @@ -64,10 +64,6 @@ namespace rfunc - //! отрисовка скайбокса и облаков - void RenderSky(DWORD timeDelta); - - //! отрисовка партиклов (эффектов) void RenderParticles(DWORD timeDelta); @@ -89,8 +85,6 @@ namespace rfunc //! изменить режим рендера (оконный/полноэкранный) void ChangeModeWindow(); - - void FullScreenChangeSizeAbs(); }; #endif diff --git a/source/render/sxrender.cpp b/source/render/sxrender.cpp index bbfc3cff51aee7541a6915122567a03f79c8a4c6..bb92f5d5a42cc3ff2c8e67710d06aee45d87578c 100644 --- a/source/render/sxrender.cpp +++ b/source/render/sxrender.cpp @@ -149,11 +149,6 @@ SX_LIB_API void SRender_UpdateView() rfunc::UpdateView(); } -SX_LIB_API void SRender_RenderSky(DWORD timeDelta) -{ - rfunc::RenderSky(timeDelta); -} - SX_LIB_API void SRender_RenderParticles(DWORD timeDelta) { @@ -188,8 +183,3 @@ SX_LIB_API void SRender_ChangeModeWindow() rfunc::ChangeModeWindow(); //LibReport(REPORT_MSG_LEVEL_NOTICE, "SRender_ChangeModeWindow --\n"); } - -SX_LIB_API void SRender_FullScreenChangeSizeAbs() -{ - rfunc::FullScreenChangeSizeAbs(); -} \ No newline at end of file diff --git a/source/render/sxrender.h b/source/render/sxrender.h index cc533c621bb0e88a21c721c0a7c14f6714a9807d..c10b11986071b675d0c1992c6bf1ecfb353ea155 100644 --- a/source/render/sxrender.h +++ b/source/render/sxrender.h @@ -215,9 +215,6 @@ SX_LIB_API void SRender_ComVisibleReflection(); //! обработка и установка основных матриц, обработка плоскостей отсечения SX_LIB_API void SRender_UpdateView(); -//! отрисовка скайбокса и облаков -SX_LIB_API void SRender_RenderSky(DWORD timeDelta); - //! отрисовка партиклов (эффектов) SX_LIB_API void SRender_RenderParticles(DWORD timeDelta); @@ -239,9 +236,6 @@ SX_LIB_API void SRender_SaveWorkTex(); //! изменить режим рендера (оконный/полноэкранный) SX_LIB_API void SRender_ChangeModeWindow(); -//! переключение в режиме fullscreen в абсолютный fullscreen и обратно -SX_LIB_API void SRender_FullScreenChangeSizeAbs(); - //!@} sxrender #endif \ No newline at end of file