14.05.2017 - 21.55: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. All the shaders in the libraries Framework3, MeshRenderer2 and IndieLib were moved from the C++-code to the package IndieLib_resources.zip. This was done as a part of work to integrate the libraries hlsl2glsl, glslangValidator and spirv_cross. The aim is to use HLSL330- or GLSL400-shaders as a starting point in the shader transformation process. The hlsl2glsl library: HLSL Shader Profiles ps_3_0, vs_3_0 -> GLSL-shaders version 110. The hlsl2glsl library: HLSL Shader Profiles ps_3_0, vs_3_0 -> GLSL-shaders version 140. The hlsl2glsl library: HLSL Shader Profiles ps_3_0, vs_3_0 -> GLES-shaders version 100 (GLES2). The hlsl2glsl library: HLSL Shader Profiles ps_3_0, vs_3_0 -> GLES-shaders version 300 (GLES3). The glslangValidator application: GLSL-shaders version 420|430 -> spv-shaders. The spirv-cross application: spv-shaders -> GLSL400|HLSL400|GLES300|METAL-shaders. 18.05.2017 - 18.48: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. 19.05.2017 - 16.52: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip were updated. 22.05.2017 - 04.45: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 25.05.2017 - 13.01: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 26.05.2017 - 04.25: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 29.05.2017 - 18.06: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip were updated. 29.05.2017 - 21.15: Package: http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip was updated. 31.05.2017 - 10.46: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip were updated. 01.06.2017 - 17.28: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 04.06.2017 - 01.00: There is the hlslparser project (https://github.com/Thekla/hlslparser). It is a HLSL Parser and Translator for HLSL, GLSL, and MSL. I could confirm with the script Docs/hlslparser/hlslparser.sh that the hlslparser can transform HLSL Shader version 330 shaders to GLSL140 shaders and METAL shaders. TODO: a transformation tool: HLSL-shaders version 330 -> GLSL-shaders version 420|430. The glslangValidator application: GLSL-shaders version 420|430 -> spv-shaders. The spirv-cross application: spv-shaders -> GLSL400|HLSL400|GLES300|METAL-shaders. 06.06.2017 - 01.07: With the script HLSL330toGLSL4.py in mk-folder it is now possible to do part of the transformation: HLSL-shaders version 330 -> GLSL-shaders version 420|430. It remains to be seen if I can transform also entry function signatures and variable declarations (attribute, varying and uniform keywords) with this script. 07.06.2017 - 21.10: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 09.06.2017 - 22.40: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip were updated. 13.06.2017 - 08.45: Package: http://www.tommironty.fi/IndieLibX.zip was updated. The script HLSL330toGLSL4.py in mk-folder can now transform shaders with simple entry function signatures almost without errors. 15.06.2017 - 06.51: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 17.06.2017 - 03.02: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 18.06.2017 - 18.21: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 25.06.2017 - 18.18: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 11.07.2017 - 11.02: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. Now the GLSL1_1 and the D3D11 renderers seem to function properly. 13.07.2017 - 17.11: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. Many C++ samples terminate with an system thrown exception on windows. This may be a sign of a heap corruption. Previous version of Microsoft Visual Studio C++ which I used was not so sensitive to the heap corruption. If you comment out line 136 (DBG_HALT;//???) in the file ./Libraries/NSGUI/Tools/Logger.cpp it is possible to circumvent this heap corruption problem. Rendering of the NSGUI is also disabled by this action. In linuxes all the samples seem to function properly without the signs of heap corruption. 10.08.2017 - 12.02: Package: http://www.tommironty.fi/IndieLibX.zip was updated. The files Libraries/NSGUI/Tools/Logger.cpp and Libraries/NSGUI/Tools/Logger.h were removed from NSGUI project. After this the heap corruption problem in the Windows 10 seemed to disappear. TODO: Remove following files from the NSGUI project: Libraries/NSGUI/Tools/NamedObject.cpp Libraries/NSGUI/Tools/NamedObject.h Libraries/NSGUI/Tools/String.cpp Libraries/NSGUI/Tools/NSString.h Libraries/NSGUI/Tools/Font.cpp Libraries/NSGUI/Tools/Font.h Libraries/NSGUI/GUI/GUIFontManager.cpp Libraries/NSGUI/GUI/GUIFontManager.h, Libraries/NSGUI/GUI/GUIFont.cpp Libraries/NSGUI/GUI/GUIFont.h Replace the original NSString class instances with std::string instances. Replace the original XML-parser in the files Libraries/NSGUI/Parsers/XMLParser.cpp and Libraries/NSGUI/Parsers/XMLParser.h with an tinyxml equivalent version with the following interface: class XMLTree { protected: TiXmlDocument* document_; TiXmlHandle* docHandle_; TiXmlElement* root; TiXmlElement* element; TiXmlAttribute* attribute; public: XMLTree(const char *name=0); ~XMLTree(); XMLElement *getAttributeByName(const char *name) const; XMLElement *getChildByName(const char *name) const; XMLElement *getChild(size_t index) const; size_t getChildrenCount() const; }; class XMLElement : public XMLTree { public: XMLElement(); XMLElement(const std::string aValue); XMLElement(TiXmlElement*); XMLElement(TiXmlAttribute*); ~XMLElement(); XMLElement(const XMLElement ©); XMLElement &operator =(const XMLElement ©) { XMLElement r;//=copy; r.element=copy.element; r.attribute=copy.attribute; return r; } void loadRX_GY_BZ_AWf(XMLElement &element, D3DXFROMWINEVECTOR4 &container); void loadRX_GYf(XMLElement &element, D3DXFROMWINEVECTOR2 &container); void loadRX_GY_BZf(XMLElement &element, D3DXFROMWINEVECTOR3 &container); void loadRX_GYi(XMLElement &element, Tuple2i& attributes); const char* getValuec(){return getvalue();} const int getValuei(); const float getValuef(); std::string getValue(); const char* getvalue(); std::string getName(); void setName(const char* a){}//??? }; 12.08.2017 - 16.41: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. 14.08.2017 - 20.07: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 15.08.2017 - 18.15: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 17.08.2017 - 12.15: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 24.08.2017 - 01.02: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 26.08.2017 - 18.30: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 30.08.2017 - 18.00: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 01.09.2017 - 13.36: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 02.09.2017 - 01.09: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 03.09.2017 - 19.55: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 12.09.2017 - 19.36: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 15.09.2017 - 19.39: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 24.09.2017 - 18.50: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 26.09.2017 - 19.50: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 27.09.2017 - 01.03: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. Some NSString related bugs in the files /IndieLibX/Libraries/NatureSceneLibrary/Geometry/Geometry.cpp, /IndieLibX/Libraries/NSGUI/Parsers/IOXMLObject.cpp and /IndieLibX/Libraries/NSGUI/Appearance/Texture.cpp were corrected. 29.09.2017 - 11.00: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 15.10.2017 - 23.42: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 26.10.2017 - 08.26: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 27.10.2017 - 18.16: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 01.11.2017 - 00.03: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 14.11.2017 - 04.27: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 24.11.2017 - 20.47: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 01.12.2017 - 10.33: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 18.12.2017 - 15.20: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 31.12.2017 - 08.40: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 04.01.2018 - 12.03: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 09.01.2018 - 22.42: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 12.01.2018 - 12.00: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 16.01.2018 - 16.32: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 17.01.2018 - 20.50: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 18.01.2018 - 23.26: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 20.01.2018 - 01.50: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 21.01.2018 - 06.10: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 25.01.2018 - 01.44: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 01.02.2018 - 21.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 03.02.2018 - 05.15: Package: http://www.tommironty.fi/IndieLibX.zip was updated. 03.04.2018 - 07.51: Package: http://www.tommironty.fi/IndieLib_resources.zip was updated. 04.04.2018 - 08.30: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip, http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. Only static libraries in the package IndieLibX_AllLibs_LNX32.zip were tested extensively (HLSL-, SampleApps2- and SampleApps-solutions). 11.04.2018 - 20.12: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. 11.04.2018 - 22.09: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip, http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 02.05.2018 - 20.38: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 09.08.2018 - 08.45: Packages: http://www.tommironty.fi/IndieLibX1.zip, http://www.tommironty.fi/IndieLib_resources1.zip, http://www.tommironty.fi/IndieLibX2.zip, and http://www.tommironty.fi/IndieLib_resources2.zip were updated. The memory corruption problems seemed to get lesser after installing the new Ubuntu LTS from the minimal Ubuntu DVD. The remaining memory corruption problems are documented in the Projects.xml file (ProceduralBuilding solution). 11.08.2018 - 22.00: Packages: http://www.tommironty.fi/IndieLibX.zip, and http://www.tommironty.fi/IndieLib_resources.zip were updated. IndieLibX.zip: Includes new experimental static MeshRenderer2 library (toggle MeshRenderer2version element in the Projects.xml-file). IndieLib_resources.zip: TGA-files removed (except for IndieLib_resources/NSGUI/ArialSmall.tga) and replaced with PNG-files. 18.08.2018 - 19.26: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. Some of the python scripts in the folder IndieLibX/scripting now work in linux machines (after fixin the files IndieLibX/Libraries/Framework3/src/RendererHLSLCg.cpp and IndieLibX/Libraries/STX/src/fileUtilCPP.cpp). 30.08.2018 - 01.00: Package: http://www.tommironty.fi/IndieLibX.zip was updated. Projects.xml and Projects.py files were fixed. Building static libraries works for OSX. There are currently some linking problems in the application builds for OSX with assimp3_x static library. Building static libraries and applications works for Windows10 builds. Running Windows10 applications currently fails. 31.08.2018 - 03.52: Package: http://www.tommironty.fi/IndieLibX.zip was updated. Projects.xml and Projects.py files were fixed. Building static libraries and applications works for Windows10/OSX builds. Running Windows10/OSX applications currently fails. Some info about the errors: Library STX File Image3.cpp line 1336 (stack around the variable wminfo was corrupted) on Windows10. I turned logging off to see if it helps. It did not. Library Image3 File Image.cpp line 2931 crashes on OSX (Image3::convert function). Library Framework3 Files RendererGL_1_1.cpp and RendererGLSLGL_1_1.cpp: some glDraw... functions crashed on OSX. Building static libraries and applications works for Linux32/Linux64 builds. Running Linux32/Linux64 applications works. In library FW3 in struct Shape3D rendering is erroneous for 64-Bit Linuxes. Quad (DrawIndexedPrimitiveUP[PRIM_TRIANGLES]) rendering is erroneous for 64-Bit Linuxes. 31.08.2018 - 11.50: Package: http://www.tommironty.fi/IndieLibX.zip was updated. The file sdl2.dll (Dependencies/SDL2-2.0.10/lib/x64/sdl2.dll) and SDL2 include files (Libraries/SDL2-2.0.10/include/SDL) were replaced with the version 2.0.8 files. There was probably version 2.0.5 files messing around. Now some samples compile and run on Windows10 (D3D11 renderer). 31.08.2018 - 22.06: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. Now more samples compile and run on Windows10 (D3D11 renderer) after fixing the sample application files. 01.09.2018 - 13.42: Package: http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip was updated. OSX building works but running OSX applications fails. 01.09.2018 - 17.45: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip were updated. OSX building works but running OSX applications crashes at several places (eg. at glDraw... functions). Compiling and running opengl_simple project on OSX (Samples/GL/sdl_opengl_simple/sdl_opengl_simple.cpp) with Projects.py and run.sh scripts works so it seems that the OSX build system works at least partially. 08.09.2018 - 01.40: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. In the OSX I may have currently wrong version of XCode and/or commandline tools (probably thats why the compiled applications crash at various places in the OSX). 08.09.2018 - 06.33: I installed XCode 7.3 and commandline tools for XCode 7.3 to see if OSX crashing disappears by this. It did not. 09.09.2018 - 00.50: I added some code to before glDrawArrays and glDrawElements function calls to check whether these functions receive proper data. I added some code after aiImportFile... function calls to check whether the aiImportFile... function call succeeded. After these additions there seems to be less code crashing on OSX. 09.09.2018 - 16.00: Package: http://www.tommironty.fi/IndieLibX.zip was updated. In the OSX there was a collision with the IndieLibX png-1.5.0 and a OSX libpng version of X11. After removing X11 libpng there seems to be less code crashing on OSX. The remaining OSX crashing is documented in the Projects.xml file. 09.09.2018 - 19.15: Package: http://www.tommironty.fi/IndieLibX.zip was updated. Library Framework3 Files RendererGL_1_1.cpp and RendererGLSLGL_1_1.cpp were modified. glDraw... functions do not work properly on OSX. 09.09.2018 - 21.50: Package: http://www.tommironty.fi/IndieLibX.zip was updated. The function RendererGLSLGL_1_1::changeVertexBufferVrtl was modified. Now some applications work properly on OSX (SampleApps solution). OSX: /usr/local/include/SDL2 21.09.2018 - 23.30: Package: http://www.tommironty.fi/IndieLibX.zip was updated. Samples SimpleTexture4, ParticleVS3 and Billboard2 were modified. The flags argument (const unsigned int flags) in the some Draw... function calls (DrawPrimitive, DrawIndexedPrimitive, DrawPrimitiveUP and/or DrawIndexedPrimitiveUP) was set to zero in these samples. The corrected flag value allows to render multiple textures correctly with multiple Draw... calls in one frame. This should be used as a last resort. Replace the default flag value (const unsigned int flags=0xFFFF) with zero (const unsigned int flags=0x0000) only if you do not see all the sampled textures on the screen otherwise (or some sampled textures are erroneously colored black). 17.10.2018 - 22.05: Two issues to be considered: 1. get rid off the Draw... function flag (0x0000 or 0xFFFF) problem 2. a Vulkan renderer These perhaps require a new game engine interface (a successor for the Framework3 interface). 27.10.2018 - 12.40: Package: http://www.tommironty.fi/IndieLibX7.zip was created. It includes the possible fix to the Draw... function flag (0x0000 or 0xFFFF) problem without major changes to the game engine interface (the static library Framework3 interface). The test.bmp texture was not visible on the Ubuntu screen. 03.11.2018 - 06.00: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip were updated. The former package http://www.tommironty.fi/IndieLibX7.zip was merged to the package http://www.tommironty.fi/IndieLibX.zip. 05.11.2018 - 16.55: Package: http://www.tommironty.fi/IndieLibX.zip was updated. There are now two new define statements ( #undef __X7__ #undef __X7_1__) in the file ./Libraries/Framework3/include/Framework3/IRenderer.h: #undef __X7__ // the uncorrected Draw... function flag (0x0000 or 0xFFFF) problem #define __X7__ 1 // the corrected Draw... function flag (0x0000 or 0xFFFF) problem (does not function properly currently) 13.11.2018 - 12.30: Compiling and rendering with the #define __X7__ statements works now better (since reworking the #ifdef __X7__ and the #ifdef __X7_1__ statements). There was printed to the terminal some new error messages related to the OpenGL rendering (#define __X7__): ../../../Libraries/MeshRenderer2/MeshRenderer.cpp:DrawSorted:216:ret=500:DrawIndexedPrimitive(PRIM_TRIANGLES ../../../Libraries/FW3/src/Shape3D.cpp:Draw:83:ret=500:DrawIndexedPrimitiveUP(PRIM_TRIANGLES ../../../Libraries/NSGUI/GUI/GUIClippedRectangle.cpp:renderClippedBounds:225:ret=500:DrawPrimitiveUP(PRIM_TRIANGLE_FAN ../../../Libraries/NSGUI/GUI/GUICheckBox.cpp:render:119:ret=500:RendererHLSLCg::drawCircleVrtl:DrawPrimitiveUP(PRIM_TRIANGLE_STRIP/PRIM_TRIANGLE_FAN ../../../Libraries/NSGUI/GUI/GUICheckBox.cpp:render:124:ret=500:RendererHLSLCg::drawCircleVrtl:DrawPrimitiveUP(PRIM_TRIANGLE_STRIP/PRIM_TRIANGLE_FAN It is uncertain if all these errors are real. If one uses #undef __X7__ instead of #define __X7__ there are no OpenGL related error messages on the log-file. If one uses #define __X7__ statement there are erroneus rendering related to the NSGUI static library and DepthTest among other errors. 15.11.2018 - 18.30: The multiple texture sampling with one Draw... call started to work after I restored the original glActiveTextureARB(GL_TEXTURE0 + i); statement in the function RendererGLSLGL_1_1::applyTextures. In the IRenderer.h header file I restored the original functionality by following statements: #undef __X7__ //const unsigned int iDrawFlag= 0x0000; const unsigned int iDrawFlag= 0xFFFF; 18.11.2018 - 17.10: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. A new sample ProceduralBuilding3D (Libraries/Framework3/include/Framework3/ProceduralBuilding3D.h) was developed by simplifying the former sample ProceduralBuilding (Libraries/Framework3/include/Framework3/ProceduralBuilding.h). It does not function properly yet. 22.11.2018 - 14.10: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 24.11.2018 - 15.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. 24.11.2018 - 21.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip and http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip were updated. There was something wrong with the indexbuffer index type (DWORD). I changed the indexbuffer type from DWORD to WORD in some samples and in the static library FW3. As a result more samples work now better in the Ubuntu (64-bit Linux). 25.11.2018 - 07.00: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. A new sample ProceduralBuilding4 (Libraries/Framework3/include/Framework3/ProceduralBuilding4.h) was developed by simplifying the former sample ProceduralBuilding3D (Libraries/Framework3/include/Framework3/ProceduralBuilding3D.h). There is now a basic user tweakable vertice recording functionality which allows the construction of (sub?)meshes from user selectable vertices defined by the user defined rules. There is now three new issues to be handled: 1. constuction/utilization of (sub?)meshes from user selectable vertices defined by the user defined rules 2. attach somehow multiple textures to quads by splitting quads in X- and Y-direction to the subquads. 3. boolean meshes (and/or hidden triangles removal by c3dbool- or FW3-static library?) 26.11.2018 - 21.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. Some DWORD (GL_UNSIGNED_INT) types were changed to WORD (GL_UNSIGNED_SHORT) types related to the glDrawElements indexbuffer index types in the static library Framework3. 02.12.2018 - 21.30: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. OSX building started to work after I added "mkdir -p $(TARGETDIR)" statement to the Projects.py script. I also renamed the png.h header file included in the X11 of the OSX in order to avoid the png.h headerfile collision. 02.12.2018 - 23.50: In the DirecX11 and Vulkan there are the following allowed indexbuffer index types (in the DirecX12 and in the MoltenVK they are probably the same): typedef unsigned short WORD; typedef unsigned long DWORD; In the GLES2, GLES3 and GL there are the following indexbuffer index types: typedef unsigned short WORD; typedef unsigned int UINT; So it seems that the index type WORD is the proper one for the game engine across all platforms (very large indexes not allowed). 05.12.2018 - 18.20: After fixing files RendererGL_1_1.cpp and RendererGLSLGL_1_1.cpp there is less error message popup windows on OSX. OSX: file RendererGLSLGL_1_1.cpp: functions DrawPrimitive and DrawIndexedPrimitive crashes. Windows10: MeshRenderer.cpp line 176: LockIndexBuffer returns zero pointer (uint16_t* aiIndices). 07.12.2018 - 06.30: MeshRenderer.cpp: an alternative IndexBuffer handling was coded. In OSX and in Windows10 rendering proceeds now almost without error messages. Still in OSX and in Windows10 rendering fails in many samples. Rendering with static library MeshRenderer2 fails in Windows10. 28.12.2018 - 18.40: Rendering with static library MeshRenderer2 fails in OSX. 01.01.2019 - 16.40: The static library MeshRenderer2 was modified to support the index type UINT only with the renderers GLSL_1_1, GLSL4_5, GLES2 and GLES3_2 and to support the index type DWORD only with the renderers D3D9, D3D10, D3D11, D3D12 and Vulkan. It affects the rendering of the 3D model IndieLib_resources/Orcs/Bonfire_wOrcs.x on Ubuntu. The 3D model IndieLib_resources/GLEssentials/Assets/demon.x was corrected. 05.01.2019 - 22.40: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. There was something wrong with the static libraries Framework3 and/or MeshRenderer2. I restored the previous versions of the static libraries Framework3 and MeshRenderer2. I also tested the samples in the solution Test. The problem seems to be now fixed. 06.01.2019 - 05.25: OSX: I fixed the error message: Failed to create temporary file /usr/tmp/JPG... by modifying the jmemname.c file (#define TEMP_DIRECTORY): Libraries/jpeg-8c/jmemname.c: #ifndef TEMP_DIRECTORY /* can override from jconfig.h or Makefile */ #ifdef LINUX #define TEMP_DIRECTORY "/usr/tmp/" /* recommended setting for Unix */ #else #define TEMP_DIRECTORY "../../tmp/" #endif #endif There is still something wrong with the indexes (glDrawElements function) in OSX in Libraries/Framework3/src/RendererGLSLGL_1_1.cpp and/or Libraries/Framework3/src/RendererGL_1_1.cpp file. In the Ubuntu the indexes work as intended. 06.01.2019 - 11.00: OSX: in the file Libraries/MeshRenderer2/MeshRenderer.cpp: indexbuffer lock/unlock block was restored to the original version. Rendering with indices (glDrawElements) succeeds now in the OSX. 12.02.2019 - 15.15: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. Some progress on the file Libraries/Framework3/include/Framework3/ProceduralBuilding2_2.h in the issue of building user defined larger meshes by combining smaller user defined submeshes. 19.02.2019 - 20.20: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. Some progress on the issue of building user defined larger meshes by combining smaller user defined submeshes. 26.03.2019 - 22.00: Package: http://www.tommironty.fi/IndieLibX.zip was updated. I am in the process of writing a new simpler MeshRenderer2 static library which supports the x-, 3ds-, sdkmesh- and obj-files. Because of this the stx_writeXFile function is currently disabled so the samples ProceduralBuilding, ProceduralBuilding2 and ProceduralBuilding3 dont work at the moment. 28.03.2019 - 11.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLibX_NEW.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. Package: http://www.tommironty.fi/IndieLibX_NEW.zip: new package: Some 3D models rendered incorrectly (The new MeshRenderer2 static library). 21.04.2019 - 11.15: Package: http://www.tommironty.fi/IndieLibX_NEW.zip was updated. The MeshRenderer2 static library can be built with two MeshRenderer2Simpler.cpp files: Libraries/MeshRenderer2/MeshRenderer2Simpler_ProceduralBuilding.cpp renders ProceduralBuilding samples correctly. Libraries/MeshRenderer2/MeshRenderer2Simpler_MeshRenderer2.cpp renders other samples quite well. The aim is to combine these files so that all samples are rendered succesfully. 22.04.2019 - 21.00: Package: http://www.tommironty.fi/IndieLibX_NEW.zip was updated. The file Libraries/MeshRenderer2/MeshRenderer2Simpler_Combined.cpp renders allmost all 3D samples succesfully. 06.05.2019 - 14.30: Packages: http://www.tommironty.fi/IndieLibX2.zip and http://www.tommironty.fi/IndieLibX3.zip were updated. struct MeshRenderer2 was merged with struct Shape3D. This helps to manage the 3D shaders. IndieLibX2.zip: 3D models loaded with assimp-3.2 static library. More 3D models rendered succesfully. IndieLibX3.zip: 3D models loaded with new MeshRenderer3 static library. Less 3D models rendered succesfully. 09.05.2019 - 14.15: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. 23.05.2019 - 10.00: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. RadeonTerrainDemo sample was modified (DWORD and D3DCOLOR types were changed to unsigned int type). RadeonTerrainDemo sample should work now on both 32-bit and 64-bit linuxes. Other platforms were not tested. DWORD and D3DCOLOR type sizes can vary in different platforms. The fread and fwrite functions (binary stream input/output) need correct type sizes as a parameters. Ubuntu: Ubuntu: Darwin: Windows10: 32-bit 64-bit sizeof(char): 1 1 1 1 sizeof(unsigned char): 1 1 1 1 sizeof(unsigned short): 2 2 2 2 sizeof(unsigned int): 4 4 4 4 sizeof(unsigned long): 4 8 8 4 sizeof(WORD): 2 2 2 2 sizeof(DWORD): 4 4 4 4 sizeof(UCHAR): 1 1 1 1 sizeof(USHORT): 2 2 2 2 sizeof(UINT): 4 4 4 4 sizeof(ULONG): 4 4 8 4 sizeof(float): 4 4 4 4 sizeof(double): 8 8 8 8 25.05.2019 - 04.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX32.zip, http://www.tommironty.fi/IndieLibX_AllLibs_LNX64.zip, http://www.tommironty.fi/IndieLibX_AllLibs_NDK.zip, http://www.tommironty.fi/IndieLibX_AllLibs_OSX.zip, http://www.tommironty.fi/IndieLibX_AllLibs_iOS.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. Files RendererGLSLGL_1_1.cpp and RendererGL_1_1.cpp were updated. Rendering update logic was changed in other than Linux platforms. This is probably safer approach in other than Linux platforms. Building a new solution (./make.sh TestApps) builds all working applications grouped together to a one solution. It is easy to test them with ./run.sh script. 22.06.2019 - 10.15: Packages: http://www.tommironty.fi/IndieLibX.zip and http://www.tommironty.fi/IndieLib_resources.zip were updated. Samples SpotLighting and MultiLighting were fixed. 27.10.2019 - 11.00: Packages: http://www.tommironty.fi/IndieLibX.zip, http://www.tommironty.fi/IndieLib_resources.zip and http://www.tommironty.fi/IndieLibX_AllLibs_WIN64.zip were updated. There was something wrong with the gamma correction in Windows10. This was fixed. More samples work now better in Windows10.