![]() |
SLProject
4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
|
#include <SLAssetLoader.h>
Public Member Functions | |
| SLAssetLoader (SLstring modelPath, SLstring texturePath, SLstring shaderPath, SLstring fontPath) | |
| ~SLAssetLoader () | |
| void | scene (SLScene *scene) |
| bool | isLoading () const |
| SLstring | modelPath () const |
| SLstring | shaderPath () const |
| SLstring | texturePath () const |
| void | addRawDataToLoad (SLIOBuffer &buffer, SLstring filename, SLIOStreamKind kind) |
| void | addTextureToLoad (SLGLTexture *&texture, const SLstring &path, SLint min_filter=GL_LINEAR_MIPMAP_LINEAR, SLint mag_filter=GL_LINEAR, SLTextureType type=TT_unknown, SLint wrapS=GL_REPEAT, SLint wrapT=GL_REPEAT) |
| Add 2D textures with internal image allocation. More... | |
| void | addTextureToLoad (SLGLTexture *&texture, const SLstring &imageFilenameXPos, const SLstring &imageFilenameXNeg, const SLstring &imageFilenameYPos, const SLstring &imageFilenameYNeg, const SLstring &imageFilenameZPos, const SLstring &imageFilenameZNeg, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLTextureType type=TT_unknown) |
| Add cube map texture with internal image allocation. More... | |
| void | addTextureToLoad (SLGLTexture *&texture, SLint depth, const SLstring &path, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLint wrapS=GL_REPEAT, SLint wrapT=GL_REPEAT, const SLstring &name="3D-Texture", SLbool loadGrayscaleIntoAlpha=false) |
| Add 3D texture from a single file with depth as 3rd dimension. More... | |
| void | addTextureToLoad (SLGLTexture *&texture, const SLVstring &imagePaths, SLint min_filter, SLint mag_filter, SLint wrapS, SLint wrapT, const SLstring &name, SLbool loadGrayscaleIntoAlpha) |
| Add 3D texture from a vector of files. More... | |
| void | addGeoTiffToLoad (SLDeviceLocation &devLoc, const SLstring &imageFileWithPath) |
| Add GeoTiff file to load for the SLDevLocation. More... | |
| void | addNodeToLoad (SLNode *&node, const SLstring &modelPath, SLSkybox *skybox=nullptr, SLbool deleteTexImgAfterBuild=false, SLbool loadMeshesOnly=true, SLMaterial *overrideMat=nullptr, float ambientFactor=0.5f, SLbool forceCookTorranceRM=false, SLuint flags=SLProcess_Triangulate|SLProcess_JoinIdenticalVertices|SLProcess_RemoveRedundantMaterials|SLProcess_FindDegenerates|SLProcess_FindInvalidData|SLProcess_SplitLargeMeshes) |
| Add mesh from file to load via assimp loader. More... | |
| void | addProgramToLoad (SLGLProgram *&program, const SLstring &vertShaderFile, const SLstring &fragShaderFile) |
| Add generic GLSL program with shader files to load. More... | |
| void | addSkyboxToLoad (SLSkybox *&skybox, const SLstring &path, SLVec2i resolution, SLstring name) |
| Add skybox with HDR texture to load. More... | |
| void | addSkyboxToLoad (SLSkybox *&skybox, const SLstring &cubeMapXPos, const SLstring &cubeMapXNeg, const SLstring &cubeMapYPos, const SLstring &cubeMapYNeg, const SLstring &cubeMapZPos, const SLstring &cubeMapZNeg) |
| Add skybox with 6 textures for a cubemap to load. More... | |
| void | addLoadTask (SLAssetLoadTask task) |
| Add generic task. More... | |
| void | loadAssetsSync () |
| void | loadAssetsAsync (function< void()> onDone) |
| void | checkIfAsyncLoadingIsDone () |
Public Attributes | |
| SLScene * | _scene |
| SLAssetManager * | _am |
| SLstring | _modelPath |
| SLstring | _texturePath |
| SLstring | _shaderPath |
| SLstring | _fontPath |
| SLVAssetLoadTask | _loadTasks |
| function< void()> | _onDoneLoading |
| Callback after threaded loading. More... | |
| thread | _worker |
| worker thread for parallel loading More... | |
| atomic< State > | _state |
| current state (used for communication between threads) More... | |
| mutex | _messageMutex |
| mutex protecting state between threads More... | |
| condition_variable | _messageCondVar |
| mutex for waiting until state has changed More... | |
Private Types | |
| enum class | State { IDLE , SUBMITTED , WORKING , DONE , STOPPING , STOPPED } |
Definition at line 44 of file SLAssetLoader.h.
|
strongprivate |
| Enumerator | |
|---|---|
| IDLE | |
| SUBMITTED | |
| WORKING | |
| DONE | |
| STOPPING | |
| STOPPED | |
Definition at line 47 of file SLAssetLoader.h.
| SLAssetLoader::SLAssetLoader | ( | SLstring | modelPath, |
| SLstring | texturePath, | ||
| SLstring | shaderPath, | ||
| SLstring | fontPath | ||
| ) |
Definition at line 27 of file SLAssetLoader.cpp.
| SLAssetLoader::~SLAssetLoader | ( | ) |
Definition at line 74 of file SLAssetLoader.cpp.
| void SLAssetLoader::addGeoTiffToLoad | ( | SLDeviceLocation & | devLoc, |
| const SLstring & | imageFileWithPath | ||
| ) |
Add GeoTiff file to load for the SLDevLocation.
Definition at line 229 of file SLAssetLoader.cpp.
| void SLAssetLoader::addLoadTask | ( | SLAssetLoadTask | task | ) |
Add generic task.
Definition at line 304 of file SLAssetLoader.cpp.
| void SLAssetLoader::addNodeToLoad | ( | SLNode *& | node, |
| const SLstring & | modelPath, | ||
| SLSkybox * | skybox = nullptr, |
||
| SLbool | deleteTexImgAfterBuild = false, |
||
| SLbool | loadMeshesOnly = true, |
||
| SLMaterial * | overrideMat = nullptr, |
||
| float | ambientFactor = 0.5f, |
||
| SLbool | forceCookTorranceRM = false, |
||
| SLuint | flags = SLProcess_Triangulate | SLProcess_JoinIdenticalVertices | SLProcess_RemoveRedundantMaterials | SLProcess_FindDegenerates | SLProcess_FindInvalidData | SLProcess_SplitLargeMeshes |
||
| ) |
| void SLAssetLoader::addProgramToLoad | ( | SLGLProgram *& | program, |
| const SLstring & | vertShaderFile, | ||
| const SLstring & | fragShaderFile | ||
| ) |
Add generic GLSL program with shader files to load.
Definition at line 238 of file SLAssetLoader.cpp.
| void SLAssetLoader::addRawDataToLoad | ( | SLIOBuffer & | buffer, |
| SLstring | filename, | ||
| SLIOStreamKind | kind | ||
| ) |
Definition at line 89 of file SLAssetLoader.cpp.
| void SLAssetLoader::addSkyboxToLoad | ( | SLSkybox *& | skybox, |
| const SLstring & | cubeMapXPos, | ||
| const SLstring & | cubeMapXNeg, | ||
| const SLstring & | cubeMapYPos, | ||
| const SLstring & | cubeMapYNeg, | ||
| const SLstring & | cubeMapZPos, | ||
| const SLstring & | cubeMapZNeg | ||
| ) |
| void SLAssetLoader::addSkyboxToLoad | ( | SLSkybox *& | skybox, |
| const SLstring & | path, | ||
| SLVec2i | resolution, | ||
| SLstring | name | ||
| ) |
| void SLAssetLoader::addTextureToLoad | ( | SLGLTexture *& | texture, |
| const SLstring & | imageFilenameXPos, | ||
| const SLstring & | imageFilenameXNeg, | ||
| const SLstring & | imageFilenameYPos, | ||
| const SLstring & | imageFilenameYNeg, | ||
| const SLstring & | imageFilenameZPos, | ||
| const SLstring & | imageFilenameZNeg, | ||
| SLint | min_filter = GL_LINEAR, |
||
| SLint | mag_filter = GL_LINEAR, |
||
| SLTextureType | type = TT_unknown |
||
| ) |
Add cube map texture with internal image allocation.
Definition at line 122 of file SLAssetLoader.cpp.
| void SLAssetLoader::addTextureToLoad | ( | SLGLTexture *& | texture, |
| const SLstring & | path, | ||
| SLint | min_filter = GL_LINEAR_MIPMAP_LINEAR, |
||
| SLint | mag_filter = GL_LINEAR, |
||
| SLTextureType | type = TT_unknown, |
||
| SLint | wrapS = GL_REPEAT, |
||
| SLint | wrapT = GL_REPEAT |
||
| ) |
| void SLAssetLoader::addTextureToLoad | ( | SLGLTexture *& | texture, |
| const SLVstring & | imagePaths, | ||
| SLint | min_filter, | ||
| SLint | mag_filter, | ||
| SLint | wrapS, | ||
| SLint | wrapT, | ||
| const SLstring & | name, | ||
| SLbool | loadGrayscaleIntoAlpha | ||
| ) |
Add 3D texture from a vector of files.
Method for adding a 3D texture from a vector of images to load in parallel thread.
| texture | Pointer to SLGLTexture to return |
| imageFilenames | Vector of texture image files. If only filenames are passed they will be searched on the SLGLTexture::defaultPath. |
| min_filter | Minification filter constant from OpenGL |
| mag_filter | Magnification filter constant from OpenGL |
| wrapS | Texture wrapping in S direction (OpenGL constant) |
| wrapT | Texture wrapping in T direction (OpenGL constant) |
| name | Name of the 3D texture |
| loadGrayscaleIntoAlpha | Flag if grayscale image should be loaded into alpha channel. |
Definition at line 201 of file SLAssetLoader.cpp.
| void SLAssetLoader::addTextureToLoad | ( | SLGLTexture *& | texture, |
| SLint | depth, | ||
| const SLstring & | path, | ||
| SLint | min_filter = GL_LINEAR, |
||
| SLint | mag_filter = GL_LINEAR, |
||
| SLint | wrapS = GL_REPEAT, |
||
| SLint | wrapT = GL_REPEAT, |
||
| const SLstring & | name = "3D-Texture", |
||
| SLbool | loadGrayscaleIntoAlpha = false |
||
| ) |
Add 3D texture from a single file with depth as 3rd dimension.
Definition at line 156 of file SLAssetLoader.cpp.
| void SLAssetLoader::checkIfAsyncLoadingIsDone | ( | ) |
This method is called from the main thread to check if the async loading is is finished. If so, the assembly can be done in _onDoneLoading.
Definition at line 357 of file SLAssetLoader.cpp.
|
inline |
Definition at line 68 of file SLAssetLoader.h.
Definition at line 343 of file SLAssetLoader.cpp.
| void SLAssetLoader::loadAssetsSync | ( | ) |
Definition at line 335 of file SLAssetLoader.cpp.
|
inline |
Definition at line 69 of file SLAssetLoader.h.
Definition at line 65 of file SLAssetLoader.h.
|
inline |
Definition at line 70 of file SLAssetLoader.h.
|
inline |
Definition at line 71 of file SLAssetLoader.h.
| SLAssetManager* SLAssetLoader::_am |
Definition at line 169 of file SLAssetLoader.h.
| SLstring SLAssetLoader::_fontPath |
Definition at line 173 of file SLAssetLoader.h.
| SLVAssetLoadTask SLAssetLoader::_loadTasks |
Definition at line 174 of file SLAssetLoader.h.
| condition_variable SLAssetLoader::_messageCondVar |
mutex for waiting until state has changed
Definition at line 180 of file SLAssetLoader.h.
| mutex SLAssetLoader::_messageMutex |
mutex protecting state between threads
Definition at line 179 of file SLAssetLoader.h.
| SLstring SLAssetLoader::_modelPath |
Definition at line 170 of file SLAssetLoader.h.
| function<void()> SLAssetLoader::_onDoneLoading |
Callback after threaded loading.
Definition at line 175 of file SLAssetLoader.h.
| SLScene* SLAssetLoader::_scene |
Definition at line 168 of file SLAssetLoader.h.
| SLstring SLAssetLoader::_shaderPath |
Definition at line 172 of file SLAssetLoader.h.
| atomic<State> SLAssetLoader::_state |
current state (used for communication between threads)
Definition at line 178 of file SLAssetLoader.h.
| SLstring SLAssetLoader::_texturePath |
Definition at line 171 of file SLAssetLoader.h.
| thread SLAssetLoader::_worker |
worker thread for parallel loading
Definition at line 177 of file SLAssetLoader.h.