Horde3D
http://horde3d.org/forums/

how to build horde3d for windows xp
http://horde3d.org/forums/viewtopic.php?f=1&t=2328
Page 1 of 1

Author:  gwald [ 08.02.2023, 02:35 ]
Post subject:  how to build horde3d for windows xp

Here's my .dll build script for building in winXP, using VMWare player.
Before install VM tools (the VM drivers) set the VM hardware compatibility to "Workstation 10" (no directx 10, etc)
Menu -> VM -> Manage -> Change hardware compatibility...
cmake 3.13.5

It's kinda hacky but works okay... it builds 4 dirs
debug and release
VM (VM_2GL_HACK_ON on)
Native (VM_2GL_HACK_ON off)
Virtual Box removed 3D support for winXP in v6.1, so I haven't tested it.


Code:
echo off
cls
REM NOTES
REM https://github.com/MNRK01/myGCCBuilds/releases/tag/12.2.0
REM i686-12.2.0-release-posix-sjlj-rt_v10-rev0.7z multilib
REM Some useful info
REM https://mingwpy.github.io/background-mingw.html
REM https://stat.ethz.ch/pipermail/r-sig-windows/2015q3/000020.html
echo.
echo --- setup info ---
echo GCC
echo https://github.com/niXman/mingw-builds-binaries/releases/tag/12.2.0-rt_v10-rev2
echo file: i686-12.2.0-release-win32-dwarf-msvcrt-rt_v10-rev2.7z
echo extracted to: C:\mingw-w64-12.2.msvcrt-dwarf-i686 and path set etc
echo libstdc++-6.dll must also be copied from the compiler to your executable location.
echo.
echo.
echo SDL2
echo https://github.com/libsdl-org/SDL/releases/tag/release-2.26.2
echo file: SDL2-devel-2.26.2-mingw.zip
echo extract to: C:\SDL2-devel-2.26.2-mingw
echo.
echo.
pause
echo.
echo VM_2GL_HACK_ON
echo VM OpenGL on windows XP (VMware) is very limited, supporting up to GL2.1 with GL3 at 43% support :/
echo and a few extensions, one that isn't is ARB_texture_rg which is
echo used by H3D. This must be ignored if it's not available,
echo comment out line egRendererBaseGL2.cpp:382 & 3
echo.
                                                                       
copy /Y C:\SDL2-devel-2.26.2-mingw\SDL2-2.26.2\i686-w64-mingw32\bin\SDL2.dll  Binaries\Windows\Debug                                                                   
pause

echo --- winxp VM builds ---
echo.
echo winxp-vm-gl2-release
mkdir winxp-vm-gl2-release
cd winxp-vm-gl2-release
echo.
cmake .. -G "MinGW Makefiles"   -DHORDE3D_BUILD_EXAMPLES=ON  -DHORDE3D_USE_GLFW=OFF -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=OFF  -DCMAKE_MAKE_PROGRAM=make -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++"  -DSDL2_INCLUDE_DIR=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/include/SDL2 -DSDL2_LIBRARY:STRING=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/lib/libSDL2.dll.a -DCMAKE_CXX_FLAGS="-fpermissive -DVM_2GL_HACK_ON" -DHORDE3D_USE_GL4=OFF  -DCMAKE_BUILD_TYPE=Release

echo.
pause
make
pause
echo.
copy /Y C:\SDL2-devel-2.26.2-mingw\SDL2-2.26.2\i686-w64-mingw32\bin\SDL2.dll Binaries\Windows\Release
cd ..

echo winxp-vm-gl2-debug
mkdir winxp-vm-gl2-debug
cd winxp-vm-gl2-debug

cmake .. -G "MinGW Makefiles"   -DHORDE3D_BUILD_EXAMPLES=ON  -DHORDE3D_USE_GLFW=OFF -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=OFF  -DCMAKE_MAKE_PROGRAM=make -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++"  -DSDL2_INCLUDE_DIR=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/include/SDL2 -DSDL2_LIBRARY:STRING=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/lib/libSDL2.dll.a -DCMAKE_CXX_FLAGS="-fpermissive -DVM_2GL_HACK_ON" -DHORDE3D_USE_GL4=OFF -DCMAKE_BUILD_TYPE=Debug
echo.
pause 
make
pause
echo.
copy /Y C:\SDL2-devel-2.26.2-mingw\SDL2-2.26.2\i686-w64-mingw32\bin\SDL2.dll  Binaries\Windows\Debug 
cd ..

echo --- winxp hardware builds ---



echo winxp-release
mkdir winxp-release
cd winxp-release
cmake .. -G "MinGW Makefiles"   -DHORDE3D_BUILD_EXAMPLES=ON  -DHORDE3D_USE_GLFW=OFF -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=OFF  -DCMAKE_MAKE_PROGRAM=make -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++"  -DSDL2_INCLUDE_DIR=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/include/SDL2 -DSDL2_LIBRARY:STRING=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/lib/libSDL2.dll.a -DCMAKE_CXX_FLAGS="-fpermissive"  -DCMAKE_BUILD_TYPE=Release
echo.
pause
make
pause
echo.
copy /Y C:\SDL2-devel-2.26.2-mingw\SDL2-2.26.2\i686-w64-mingw32\bin\SDL2.dll Binaries\Windows\Release
cd ..

winxp-debug
mkdir winxp-debug
cd winxp-debug
cmake .. -G "MinGW Makefiles"   -DHORDE3D_BUILD_EXAMPLES=ON  -DHORDE3D_USE_GLFW=OFF -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=OFF  -DCMAKE_MAKE_PROGRAM=make -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++"  -DSDL2_INCLUDE_DIR=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/include/SDL2 -DSDL2_LIBRARY:STRING=C:/SDL2-devel-2.26.2-mingw/SDL2-2.26.2/i686-w64-mingw32/lib/libSDL2.dll.a -DCMAKE_CXX_FLAGS="-fpermissive"   -DCMAKE_BUILD_TYPE=Debug

echo.
pause
make
pause
echo.
copy /Y C:\SDL2-devel-2.26.2-mingw\SDL2-2.26.2\i686-w64-mingw32\bin\SDL2.dll Binaries\Windows\Debug
cd ..




I'm not sure what the ARB_texture_rg does, but it effects Chicago's background, (deferred rendering only) looks like it's not clearing it.

Looks like EXT_framebuffer_multisample is also used and not supported, but it's not an issue running the samples.

To use the dll's I use tcc (tiny C Compiler)
create dll def files first:
tcc -impdef -v SDL2.dll
tcc -impdef -v libHorde3D.dll
tcc -impdef -v libHorde3DUtils.dll
tcc -impdef -v libstdc++-6.dll

CFLAGS are:
-Wall -Werror -g -I./includes -L. -lSDL2 -llibHorde3DUtils -llibHorde3D -lopengl32

It worked fine with the tutorial

GL report from my laptop
Attachment:
File comment: full report - running Linux (MX 21.3 AHS) NVidia RXT3060 laptop
VM-GL.txt [5.81 KiB]
Downloaded 365 times




You need to replace this function with the msvcrt friendly version:
In file utPlatform.h


Error: variable 'st rncpy' definition is marked dllimport
comment out the following
// #if (!defined( _MSC_VER ) || (defined( _MSC_VER ) && (_MSC_VER < 1400))) // && !defined( __MINGW32__ )
// # define strncpy_s( dst, dstSize, src, count ) strncpy( (dst), (src), ( ( (count) <= (dstSize) ) ? (count) : (dstSize) ) )
// #endif

add this to the top of the header:

#ifndef _utPlatform_H_
#define _utPlatform_H_

#if (!defined( _MSC_VER ) || (defined( _MSC_VER ) && (_MSC_VER < 1400))) // && !defined( __MINGW32__ )
#include <string.h>
# define strncpy_s( dst, dstSize, src, count ) strncpy( (dst), (src), ( ( (count) <= (dstSize) ) ? (count) : (dstSize) ) )
#endif


function:
inline float toFloat(const char* str)

#ifdef __MINGW32__
// return _atof_l(str, locale.get());

// _atof_l isn't in msvcrt
// from https://stackoverflow.com/questions/133 ... 34#1333534
{
float result = 0;
float sign = *str == '-' ? str++, -1 : 1;
while (*str >= '0' && *str <= '9') {
result *= 10;
result += *str - '0';
str++;
}
if (*str == ',' || *str == '.') {
str++;
float multiplier = 0.1;
while (*str >= '0' && *str <= '9') {
result += (*str - '0') * multiplier;
multiplier /= 10;
str++;
}
}
result *= sign;
if (*str == 'e' || *str == 'E') {
str++;
float powerer = *str == '-'? str++, 0.1 : 10;
float power = 0;
while (*str >= '0' && *str <= '9') {
power *= 10;
power += *str - '0';
str++;
}
result *= pow(powerer, power);
}
return result;
}
// from https://stackoverflow.com/questions/133 ... 34#1333534

Attachments:
File comment: WinXP VMware GL support
GL-WINXP-VMWare.jpg
GL-WINXP-VMWare.jpg [ 67.81 KiB | Viewed 10808 times ]
File comment: VM looks like this
horde3d-WINXP-VMWare.jpg
horde3d-WINXP-VMWare.jpg [ 58.83 KiB | Viewed 10809 times ]

Author:  gwald [ 10.02.2023, 04:24 ]
Post subject:  Re: how to build horde3d for windows xp

I forgot, horde3d header in C is a PITA (not complaining ), had to remove the emu stuff, here's mine.


Also, I can recommend this compiler,
https://github.com/skeeto/w64devkit

winXP support works great! and the exe's also work great on newer windows also... tested on 64bit win7 & win10! and with no extra dll's required!!

Attachments:
File comment: horde3d header in C, had to zip it due to size limit
Horde3D.h.zip [18.65 KiB]
Downloaded 366 times

Author:  gwald [ 09.05.2023, 13:15 ]
Post subject:  Re: how to build horde3d for windows xp

I uploaded a video showing the modeller I use (mostly for playstation 3D) with my H3D 3D pipeline.
Obj export -> assimp to .dae -> H3D

https://youtu.be/TjLy36A94jo?t=1169

Page 1 of 1 All times are UTC + 1 hour
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/