mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0027258: Configuration - generate built-in replacement for mandatory resource files
Generation of header files from resource files was added to CMake and genproj procedures. Message_MsgFile has been extended with new method ::LoadFromString() for loading messages from embedded resources. Message_MsgFile::LoadFromString() is now a preferred way for loading message resources by application as alternative to environment variables. TObje/TObj.msg is now embedded into TObj_Application.cxx. TObj_Application now loads its global messages on instantiation of the first class instance. UnitsAPI/Lexi_Expr.dat now completely embedded into Units_Lexicon.cxx. UnitsAPI/Units.dat now embedded into Units_UnitsDictionary.cxx but can be regenerated from resource file. The definition of the following units have been removed: benne à charbon, calorie (diététique). Unused message files XSMessage/IGES.us and IGES.fr have been removed. Related code IGESData.cxx has been removed as well. XSMessage/XSTEP.us is now embedded into Interface_StaticStandards.cxx and used for fallback initialization in case when file resources defined by CSF_XSMessage environment variable are missing. SHMessage/SHAPE.us is now embedded into ShapeExtend.cxx and used for fallback initialization in case when file resources defined by CSF_XHMessage environment variable are missing. Duplicating code has been removed from ShapeProcess_OperLibrary.cxx. Shaders/Declarations.glsl and Shaders/DeclarationsImpl.glsl are now embedded into OpenGl_ShaderProgram.cxx. CSF_ShadersDirectory is no more required for using OCCT 3D Viewer. Ray-Tracing GLSL programs from Shaders are now embedded into OpenGl_View_Raytrace.cxx. File resources are still used instead of embedded programs when CSF_ShadersDirectory is defined, but this functionality is intended for OCCT development. Enumeration Graphic3d_ShaderProgram::ShaderName_Phong demonstrating custom GLSL program usage has been removed.
This commit is contained in:
@@ -552,14 +552,40 @@ static Standard_Integer VShaderProg (Draw_Interpretor& /*theDI*/,
|
||||
}
|
||||
|
||||
TCollection_AsciiString aLastArg (theArgVec[theArgNb - 1]);
|
||||
aLastArg.UpperCase();
|
||||
const Standard_Boolean toTurnOff = aLastArg == "OFF";
|
||||
aLastArg.LowerCase();
|
||||
const Standard_Boolean toTurnOff = aLastArg == "off";
|
||||
Standard_Integer anArgsNb = theArgNb - 1;
|
||||
Handle(Graphic3d_ShaderProgram) aProgram;
|
||||
if (!toTurnOff
|
||||
&& aLastArg == "PHONG")
|
||||
&& aLastArg == "phong")
|
||||
{
|
||||
aProgram = new Graphic3d_ShaderProgram (Graphic3d_ShaderProgram::ShaderName_Phong);
|
||||
const TCollection_AsciiString& aShadersRoot = Graphic3d_ShaderProgram::ShadersFolder();
|
||||
if (aShadersRoot.IsEmpty())
|
||||
{
|
||||
std::cerr << "Both environment variables CSF_ShadersDirectory and CASROOT are undefined!\n"
|
||||
<< "At least one should be defined to load Phong program.\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TCollection_AsciiString aSrcVert = aShadersRoot + "/PhongShading.vs";
|
||||
const TCollection_AsciiString aSrcFrag = aShadersRoot + "/PhongShading.fs";
|
||||
|
||||
if (!aSrcVert.IsEmpty()
|
||||
&& !OSD_File (aSrcVert).Exists())
|
||||
{
|
||||
std::cerr << "Error: PhongShading.vs is not found\n";
|
||||
return 1;
|
||||
}
|
||||
if (!aSrcFrag.IsEmpty()
|
||||
&& !OSD_File (aSrcFrag).Exists())
|
||||
{
|
||||
std::cerr << "Error: PhongShading.fs is not found\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
aProgram = new Graphic3d_ShaderProgram();
|
||||
aProgram->AttachShader (Graphic3d_ShaderObject::CreateFromFile (Graphic3d_TOS_VERTEX, aSrcVert));
|
||||
aProgram->AttachShader (Graphic3d_ShaderObject::CreateFromFile (Graphic3d_TOS_FRAGMENT, aSrcFrag));
|
||||
}
|
||||
if (!toTurnOff
|
||||
&& aProgram.IsNull())
|
||||
|
Reference in New Issue
Block a user