0.9.5
Today's bug fixes included.
Added Texture::GetIndex(). (Returns the OpenGL texture name / id, only use this in a rendering hook).
Added Texture::GetHandle() (Returns the OpenGL bindless sampler handle).
There are some questions that need to be decided.
How much info should a brush instance share with the original?
Should texture mapping be updated on a brush that came from a prefab?
The behavior we are seeing right now is a result of not having decided these questions.
It's normal that a plugin cannot be loaded from a zip archive, because under the hood this is using the Win32 function LoadLibrary. There may be a win32 function to load a library from memory, but I have not confirmed whether there the equivalent functions for Mac and Linux exist.
0.9.5
Everything updated, on Steam and standalone, this sorts out the terrain problem. Nothing had to be programmed, I just had to make sure all the executables, libraries, and shaders were really up to date.
It doesn't appear the library supports loading files from memory, if the model consists of more than one file, like external textures, or in the case of glTF, an external binary file. I asked about it here but have not received a response yet:
https://github.com/assimp/assimp/issues/5511
I am starting to investigate the assimp library. Posting some code to come back to when I am ready to continue:
Assimp::Importer importer;
auto d = CurrentDir();
auto path = d.ToUtf8String() + "/Models/xxxxxxxxx.gltf";
const aiScene* scene = importer.ReadFile(path, 0);
if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) {
// Error handling if the file fails to load
return -1;
}
auto node = scene->mRootNode;
auto name = node->mName;
// Process meshes attached to the current node (if any)
for (unsigned int i = 0; i < node->mNumMeshes; i++)
{
aiMesh* mesh = scene->mMeshes[node->mMeshes[i]];
// Process the mesh as needed
}
// Recursively process child nodes
for (unsigned int i = 0; i < node->mNumChildren; i++)
{
}