aap / librw Goto Github PK
View Code? Open in Web Editor NEWA re-implementation of the RenderWare Graphics engine
License: MIT License
A re-implementation of the RenderWare Graphics engine
License: MIT License
In Criterion RW there is the function "RpAtomicGetWorldBoundingSphere". It calculates the bounding sphere of the atomic and correctly places it in world space. This is required for frustum checking of models. Since we are doing a game engine we really need access to the bounding sphere.
I am aware that there is a bounding sphere attached to geometry data. Can you please add an easy way to access a correctly aligned bounding sphere?
I've been wondering if there's any attempt in progress to port to WebAssembly, if not, I might take up the task.
Do any of you guys know about the possibility at last?
Cheers
Downloaded the master branch on 09.July.2017. Using Visual Studio 2015. When building the librw project I get the following compiler errors:
error C4576: a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax librw 2017_06_librw-master\src\geometry.cpp Line 157
The problematic line is this:
defaultSurfaceProps = (SurfaceProperties){ 1.0f, 1.0f, 1.0f };
Error C2065 "M_PI": Undeclared identifier
librw 2017_06_librw-master\src\base.cpp Line 259
The line is : angle = angle*M_PI/180.0f;
BTW. Are the links up-to-date?
http://gtaforums.com/topic/752450-rel-renderware-file-converter/
https://github.com/aap/librw/blob/master/src/clump.cpp#L618
The function rw::Atomic::getWorldBoundingSphere is misbehaving. If I call this function multiple times while the LTM of the atomic parent frame is not the identity matrix, then the sphere center moves into space! I think this can be fixed by also writing the sphere center of the morph target into s->center. I wonder why you have not written the center into the sphere in the first place.
Please review this problem. :-)
When I compiled the application, I opened the Developer Command Prompt for VS2015 and changed directories to the build folder. From there, I entered the command "nmake -f Makefile" only to get an error.
Makefile(4) : fatal error U1034: syntax error : separator missing Stop.
Am I doing something wrong?
Examples:
https://github.com/aap/librw/blob/master/src/image.cpp#L65
https://github.com/aap/librw/blob/master/src/image.cpp#L179
https://github.com/aap/librw/blob/master/src/image.cpp#L241
https://github.com/aap/librw/blob/master/src/geometry.cpp#L106
https://github.com/aap/librw/blob/master/src/image.cpp#L528
In Release mode, some compilers like to put the preprocessor definition "NDEBUG" to disable things like the "assert" macro to speed up code. In return, your code breaks because assert statements do not execute in Release mode anymore. Please take a look at this issue. :)
Hi,
I just noticed your repository does not have a Code of Conduct applied to it. May I suggest you add one? I want to feel good about using this project, and have it be a safe space for many kittens.
Here's a good suggestion:
[link here]
Meow!
just port over a few RW examples that can be used for testing new platforms.
Hello aap,
I have created these unit tests of RenderWare texture formats for D3D8 and D3D9. They have been tested against the GTA3/VC/SA games. I thought that having these might come in handy for you aswell. After all we are both creating our own implementations of RenderWare chunk parsers!
rwtex.unittests.d3d8.aap.zip
rwtex.unittests.d3d9.aap.zip
Have fun coding!
Your sincere friend,
The_GTA
https://github.com/aap/librw/blob/master/src/rwobjects.h#L665
While a rw::Clump object can store atomics, cameras and lights, there is currently no easy way to iterate over them. In original RW there were functions called RwClumpForAllAtomics, RwClumpForAllLights, RwClumpForAllCameras with a custom callback function. Can you please implement something like that? I would greatly appreciate it if you use modern C++ lambdas instead!
After type “make all” I get this error:
charset.cpp ../src/charset.cpp:35:8: error: ‘RWDEVICE’ does not name a type 35 | static RWDEVICE::Im2DVertex *vertices; | ^~~~~~~~
If this can help, here is the “log”.
don't allocate new buffers for everyone but do it in one big chunk and allocate from there.
How about putting all header files into a distinguished /include/librw/ folder so that you can put
#include <librw/collision.h>
into the source code? I think I have seen this directory pattern at other professional projects before. :)
Found this while working with render targets (rwRASTERTYPECAMERATEXTURE
); it currently only supports copying from rwRASTERTYPECAMERA
.
It appears that it should support all available raster types based on:
https://github.com/GTAmodding/rw37/blob/master/src/driver/d3d8/d3d8raster.c#L1469
https://github.com/GTAmodding/rw37/blob/master/src/driver/d3d9/d3d9raster.c#L1591
The only problem I see with this, is that we'll have to use the slower glCopyImageSubData
instead of glCopyTexSubImage2D
. Though we can probably limit that just to the types that require it, and avoid any functional changes.
For reference:
Line 1422 in 8b2caf8
Compiling on Raspbian 32-bit, Raspberry Pi 3b
All compiled cool and nice, but the linking process just fails at some point for some reason.
Here's what I got from the process:
Running action 'gmake2'...
Done (20513ms).
==== Building librw (release_linux-arm-librw_gl3_glfw-oal) ====
==== Building reVC (release_linux-arm-librw_gl3_glfw-oal) ====
Running prebuild commands
"./../printHash.sh" "./../src/extras/GitSHA1.cpp"
fatal: not a git repository (or any of the parent directories): .git
GitSHA1.cpp
Linking reVC
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/TexRead.o: in function `CheckVideoCardCaps()':
/home/pi/re3/build/../src/rw/TexRead.cpp:220: undefined reference to `rw::gl3::gl3Caps'
/usr/bin/ld: /home/pi/re3/build/../src/rw/TexRead.cpp:220: undefined reference to `rw::platform'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/TexRead.o: in function `WriteVideoCardCapsFile()':
/home/pi/re3/build/../src/rw/TexRead.cpp:237: undefined reference to `rw::gl3::gl3Caps'
/usr/bin/ld: /home/pi/re3/build/../src/rw/TexRead.cpp:237: undefined reference to `rw::platform'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/TexRead.o: in function `CreateTxdImageForVideoCard()':
/home/pi/re3/build/../src/rw/TxdStore.h:40: undefined reference to `rw::gl3::needToReadBackTextures'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::customFindCB(char const*)':
/home/pi/re3/build/../src/extras/custompipes.cpp:524: undefined reference to `rw::TexDictionary::find(char const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::EnvMapRender()':
/home/pi/re3/build/../src/extras/custompipes.cpp:134: undefined reference to `rw::Frame::transform(rw::Matrix const*, rw::CombineOp)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:141: undefined reference to `rw::Camera::clear(rw::RGBA*, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:148: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:149: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:150: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:151: undefined reference to `rw::SetRenderStatePtr(int, void*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:152: undefined reference to `rw::im2d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int, void*, int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:153: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:154: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::GetGlossTex(rw::Material*)':
/home/pi/re3/build/../src/extras/custompipes.cpp:411: undefined reference to `rw::TexDictionary::find(char const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::AttachRimPipe(rw::Atomic*)':
/home/pi/re3/build/../src/extras/custompipes.cpp:453: undefined reference to `rw::skinGlobals'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::AttachRimPipe(rw::Clump*)':
/home/pi/re3/build/../src/extras/custompipes.cpp:458: undefined reference to `rw::skinGlobals'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeInit()':
/home/pi/re3/build/../src/extras/custompipes.cpp:170: undefined reference to `rw::TexDictionary::find(char const*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:60: undefined reference to `rw::Raster::create(int, int, int, int, int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:62: undefined reference to `rw::Raster::create(int, int, int, int, int)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:64: undefined reference to `rw::Frame::create()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:66: undefined reference to `rw::Camera::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeInit()':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:116: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeInit()':
/home/pi/re3/build/../src/extras/custompipes.cpp:71: undefined reference to `rw::Camera::setNearPlane(float)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:72: undefined reference to `rw::Camera::setFarPlane(float)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:74: undefined reference to `rw::Camera::setViewWindow(rw::V2d const*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:75: undefined reference to `rw::World::addCamera(rw::Camera*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:76: undefined reference to `rw::Texture::create(rw::Raster*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:84: undefined reference to `rw::Frame::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:86: undefined reference to `rw::Raster::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:88: undefined reference to `rw::Raster::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeShutdown()':
/home/pi/re3/build/../src/extras/custompipes.cpp:220: undefined reference to `rw::Texture::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:99: undefined reference to `rw::Raster::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:103: undefined reference to `rw::Raster::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:109: undefined reference to `rw::Frame::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:111: undefined reference to `rw::World::removeCamera(rw::Camera*)'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:112: undefined reference to `rw::Camera::destroy()'
/usr/bin/ld: /home/pi/re3/build/../src/extras/custompipes.cpp:497: undefined reference to `rw::TexDictionary::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeRegister()':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:429: undefined reference to `rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::CustomPipeRegister()':
/home/pi/re3/build/../src/extras/custompipes.cpp:511: undefined reference to `rw::Material::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/custompipes.o: in function `CustomPipes::SetTxdFindCallback()':
/home/pi/re3/build/../src/extras/custompipes.cpp:535: undefined reference to `rw::Texture::findCB'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMalloc(unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:19: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCalloc(unsigned int, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:25: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFree(void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:26: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwV3dTransformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:49: undefined reference to `rw::V3d::transformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixDestroy(rw::Matrix*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:54: undefined reference to `rw::Matrix::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:55: undefined reference to `rw::Matrix::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixSetIdentity(rw::Matrix*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:57: undefined reference to `rw::Matrix::setIdentity()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixTransform(rw::Matrix*, rw::Matrix const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:60: undefined reference to `rw::Matrix::transform(rw::Matrix const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixInvert(rw::Matrix*, rw::Matrix const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:62: undefined reference to `rw::Matrix::invert(rw::Matrix*, rw::Matrix const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixScale(rw::Matrix*, rw::V3d const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:64: undefined reference to `rw::Matrix::scale(rw::V3d const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixTranslate(rw::Matrix*, rw::V3d const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:66: undefined reference to `rw::Matrix::translate(rw::V3d const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwMatrixRotate(rw::Matrix*, rw::V3d const*, float, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:68: undefined reference to `rw::Matrix::rotate(rw::V3d const*, float, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameTranslate(rw::Frame*, rw::V3d const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:87: undefined reference to `rw::Frame::translate(rw::V3d const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRotate(rw::Frame*, rw::V3d const*, float, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:88: undefined reference to `rw::Frame::rotate(rw::V3d const*, float, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameScale(rw::Frame*, rw::V3d const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:89: undefined reference to `rw::Frame::scale(rw::V3d const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameTransform(rw::Frame*, rw::Matrix const*, RwOpCombineType)':
/home/pi/re3/build/../src/fakerw/fake.cpp:90: undefined reference to `rw::Frame::transform(rw::Matrix const*, rw::CombineOp)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameSetIdentity(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:93: undefined reference to `rw::Matrix::setIdentity()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:93: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameForAllChildren(rw::Frame*, rw::Frame* (*)(rw::Frame*, void*), void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:97: undefined reference to `rw::Frame::forAllChildren(rw::Frame* (*)(rw::Frame*, void*), void*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRemoveChild(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:98: undefined reference to `rw::Frame::removeChild()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameAddChild(rw::Frame*, rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:99: undefined reference to `rw::Frame::addChild(rw::Frame*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameGetLTM(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:102: undefined reference to `rw::Frame::getLTM()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameUpdateObjects(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:104: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:105: undefined reference to `rw::Frame::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameDestroy(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:108: undefined reference to `rw::Frame::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:31: undefined reference to `rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/fake.cpp:115: undefined reference to `rw::Frame::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRegisterPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void const*, int, int), int (*)(void const*, int, int))':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:31: undefined reference to `rw::PluginList::registerStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwFrameRegisterPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void const*, int, int), int (*)(void const*, int, int))':
/home/pi/re3/build/../src/fakerw/fake.cpp:122: undefined reference to `rw::Frame::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `rwFrameListDeinitialize(rw::FrameList_*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:129: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `rwFrameListStreamRead(rw::Stream*, rw::FrameList_*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:130: undefined reference to `rw::FrameList_::streamRead(rw::Stream*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraClear(rw::Camera*, rw::RGBA*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:137: undefined reference to `rw::Camera::clear(rw::RGBA*, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraShowRaster(rw::Camera*, void*, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:139: undefined reference to `rw::Camera::showRaster(unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraDestroy(rw::Camera*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:140: undefined reference to `rw::Camera::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:141: undefined reference to `rw::Camera::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraClone(rw::Camera*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:142: undefined reference to `rw::Camera::clone()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraSetViewOffset(rw::Camera*, rw::V2d const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:143: undefined reference to `rw::Camera::setViewOffset(rw::V2d const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraSetViewWindow(rw::Camera*, rw::V2d const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:144: undefined reference to `rw::Camera::setViewWindow(rw::V2d const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraSetNearClipPlane(rw::Camera*, float)':
/home/pi/re3/build/../src/fakerw/fake.cpp:146: undefined reference to `rw::Camera::setNearPlane(float)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraSetFarClipPlane(rw::Camera*, float)':
/home/pi/re3/build/../src/fakerw/fake.cpp:147: undefined reference to `rw::Camera::setFarPlane(float)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraFrustumTestSphere(rw::Camera const*, rw::Sphere const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:151: undefined reference to `rw::Camera::frustumTestSphere(rw::Sphere const*) const'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraGetCurrentCamera()':
/home/pi/re3/build/../src/fakerw/fake.cpp:161: undefined reference to `rw::engine'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwCameraSetFrame(rw::Camera*, rw::Frame*)':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:116: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageCreate(int, int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:172: undefined reference to `rw::Image::create(int, int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageDestroy(rw::Image*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:173: undefined reference to `rw::Image::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageAllocatePixels(rw::Image*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:174: undefined reference to `rw::Image::allocate()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageFreePixels(rw::Image*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:175: undefined reference to `rw::Image::free()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageSetPath(char const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:184: undefined reference to `rw::Image::setSearchPath(char const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwImageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:211: undefined reference to `rw::Raster::imageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterCreate(int, int, int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:217: undefined reference to `rw::Raster::create(int, int, int, int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterDestroy(rw::Raster*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:218: undefined reference to `rw::Raster::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterRenderFast(rw::Raster*, int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:229: undefined reference to `rw::Raster::renderFast(int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterPushContext(rw::Raster*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:232: undefined reference to `rw::Raster::pushContext(rw::Raster*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterPopContext()':
/home/pi/re3/build/../src/fakerw/fake.cpp:233: undefined reference to `rw::Raster::popContext()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterGetCurrentContext()':
/home/pi/re3/build/../src/fakerw/fake.cpp:234: undefined reference to `rw::Raster::getCurrentContext()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterLock(rw::Raster*, unsigned char, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:238: undefined reference to `rw::Raster::lock(int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterUnlock(rw::Raster*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:239: undefined reference to `rw::Raster::unlock(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRasterSetFromImage(rw::Raster*, rw::Image*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:246: undefined reference to `rw::Raster::setFromImage(rw::Image*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTextureCreate(rw::Raster*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:251: undefined reference to `rw::Texture::create(rw::Raster*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTextureDestroy(rw::Texture*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:252: undefined reference to `rw::Texture::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTextureRead(char const*, char const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:273: undefined reference to `rw::Texture::read(char const*, char const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `rwNativeTextureHackRead(rw::Stream*, rw::Texture**, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:306: undefined reference to `rw::Texture::streamReadNative(rw::Stream*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:308: undefined reference to `rw::Raster::convertTexToCurrentPlatform(rw::Raster*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:317: undefined reference to `rw::TexDictionary::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryDestroy(rw::TexDictionary*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:318: undefined reference to `rw::TexDictionary::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryAddTexture(rw::TexDictionary*, rw::Texture*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:319: undefined reference to `rw::TexDictionary::addFront(rw::Texture*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryFindNamedTexture(rw::TexDictionary*, char const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:321: undefined reference to `rw::TexDictionary::find(char const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryGetCurrent()':
/home/pi/re3/build/../src/fakerw/fake.cpp:322: undefined reference to `rw::TexDictionary::getCurrent()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionarySetCurrent(rw::TexDictionary*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:323: undefined reference to `rw::TexDictionary::setCurrent(rw::TexDictionary*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwTexDictionaryStreamWrite(rw::TexDictionary const*, rw::Stream*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:337: undefined reference to `rw::TexDictionary::streamWrite(rw::Stream*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwStreamOpen(RwStreamType, RwStreamAccessType, void const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:386: undefined reference to `rw::StreamMemory::open(unsigned char*, unsigned int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:367: undefined reference to `rw::StreamFile::open(char const*, char const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:375: undefined reference to `rw::StreamFile::open(char const*, char const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:371: undefined reference to `rw::allocLocation'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:371: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:371: undefined reference to `vtable for rw::StreamMemory'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:371: undefined reference to `vtable for rw::StreamFile'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwStreamClose(rw::Stream*, void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:396: undefined reference to `rw::Engine::memfuncs'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwStreamFindChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:402: undefined reference to `rw::findChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DGetNearScreenZ()':
/home/pi/re3/build/../src/fakerw/fake.cpp:417: undefined reference to `rw::im2d::GetNearZ()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DGetFarScreenZ()':
/home/pi/re3/build/../src/fakerw/fake.cpp:418: undefined reference to `rw::im2d::GetFarZ()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DRenderLine(rw::gl3::Im2DVertex*, int, int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:420: undefined reference to `rw::im2d::RenderLine(void*, int, int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DRenderTriangle(rw::gl3::Im2DVertex*, int, int, int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:422: undefined reference to `rw::im2d::RenderTriangle(void*, int, int, int, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DRenderPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:424: undefined reference to `rw::im2d::RenderPrimitive(rw::PrimitiveType, void*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm2DRenderIndexedPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int, unsigned short*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:426: undefined reference to `rw::im2d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int, void*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm3DTransform(rw::gl3::Im3DVertex*, unsigned int, rw::Matrix*, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:434: undefined reference to `rw::im3d::Transform(void*, int, rw::Matrix*, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm3DEnd()':
/home/pi/re3/build/../src/fakerw/fake.cpp:435: undefined reference to `rw::im3d::End()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm3DRenderLine(int, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:440: undefined reference to `rw::im3d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwIm3DRenderIndexedPrimitive(RwPrimitiveType, unsigned short*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:444: undefined reference to `rw::im3d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRenderStateGet(RwRenderState, void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:461: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:463: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:464: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:465: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:466: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o:/home/pi/re3/build/../src/fakerw/fake.cpp:467: more undefined references to `rw::GetRenderState(int)' follow
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRenderStateGet(RwRenderState, void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:456: undefined reference to `rw::GetRenderStatePtr(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:457: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:458: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:459: undefined reference to `rw::GetRenderState(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwRenderStateSet(RwRenderState, void*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:503: undefined reference to `rw::SetRenderStatePtr(int, void*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:523: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:516: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:504: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:505: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:506: undefined reference to `rw::SetRenderState(int, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o:/home/pi/re3/build/../src/fakerw/fake.cpp:508: more undefined references to `rw::SetRenderState(int, unsigned int)' follow
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineInit(RwMemoryFunctions*, unsigned int, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:562: undefined reference to `rw::Engine::init(rw::MemoryFunctions*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineOpen(RwEngineOpenParams*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:574: undefined reference to `rw::Engine::open(rw::EngineOpenParams*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineStart()':
/home/pi/re3/build/../src/fakerw/fake.cpp:578: undefined reference to `rw::Engine::start()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:578: undefined reference to `rw::d3d::isP8supported'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineStop()':
/home/pi/re3/build/../src/fakerw/fake.cpp:580: undefined reference to `rw::Engine::stop()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineClose()':
/home/pi/re3/build/../src/fakerw/fake.cpp:581: undefined reference to `rw::Engine::close()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineTerm()':
/home/pi/re3/build/../src/fakerw/fake.cpp:582: undefined reference to `rw::Engine::term()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetNumSubSystems()':
/home/pi/re3/build/../src/fakerw/fake.cpp:585: undefined reference to `rw::Engine::getNumSubSystems()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetSubSystemInfo(rw::SubSystemInfo*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:587: undefined reference to `rw::Engine::getSubSystemInfo(rw::SubSystemInfo*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetCurrentSubSystem()':
/home/pi/re3/build/../src/fakerw/fake.cpp:588: undefined reference to `rw::Engine::getCurrentSubSystem()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineSetSubSystem(int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:589: undefined reference to `rw::Engine::setSubSystem(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetNumVideoModes()':
/home/pi/re3/build/../src/fakerw/fake.cpp:590: undefined reference to `rw::Engine::getNumVideoModes()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetVideoModeInfo(rw::VideoMode*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:592: undefined reference to `rw::Engine::getVideoModeInfo(rw::VideoMode*, int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineGetCurrentVideoMode()':
/home/pi/re3/build/../src/fakerw/fake.cpp:593: undefined reference to `rw::Engine::getCurrentVideoMode()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwEngineSetVideoMode(int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:594: undefined reference to `rw::Engine::setVideoMode(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwD3D8EngineSetMultiSamplingLevels(unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:605: undefined reference to `rw::Engine::setMultiSamplingLevels(unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RwD3D8EngineGetMaxMultiSamplingLevels()':
/home/pi/re3/build/../src/fakerw/fake.cpp:606: undefined reference to `rw::Engine::getMaxMultiSamplingLevels()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMaterialCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:609: undefined reference to `rw::Material::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMaterialDestroy(rw::Material*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:610: undefined reference to `rw::Material::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMaterialSetTexture(rw::Material*, rw::Texture*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:612: undefined reference to `rw::Material::setTexture(rw::Texture*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpLightSetFrame(rw::Light*, rw::Frame*)':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:116: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpLightCreate(int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:640: undefined reference to `rw::Light::create(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpLightDestroy(rw::Light*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:641: undefined reference to `rw::Light::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpLightSetColor(rw::Light*, rw::RGBAf const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:643: undefined reference to `rw::Light::setColor(float, float, float)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryCreate(int, int, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:660: undefined reference to `rw::Geometry::create(int, int, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryDestroy(rw::Geometry*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:661: undefined reference to `rw::Geometry::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryLock(rw::Geometry*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:663: undefined reference to `rw::Geometry::lock(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryUnlock(rw::Geometry*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:664: undefined reference to `rw::Geometry::unlock()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMorphTargetCalcBoundingSphere(rw::MorphTarget const*, rw::Sphere*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:669: undefined reference to `rw::MorphTarget::calculateBoundingSphere() const'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryAddMorphTargets(rw::Geometry*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:670: undefined reference to `rw::Geometry::addMorphTargets(int)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:670: undefined reference to `rw::Geometry::addMorphTargets(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryTriangleSetMaterial(rw::Geometry*, rw::Triangle*, rw::Material*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:691: undefined reference to `rw::MaterialList::findIndex(rw::Material*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:693: undefined reference to `rw::MaterialList::appendMaterial(rw::Material*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpGeometryStreamRead(rw::Stream*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:717: undefined reference to `rw::Geometry::streamRead(rw::Stream*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRender(rw::Clump*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:739: undefined reference to `rw::Clump::render()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRemoveAtomic(rw::Clump*, rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:740: undefined reference to `rw::Clump::removeAtomic(rw::Atomic*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpAddAtomic(rw::Clump*, rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:741: undefined reference to `rw::Clump::addAtomic(rw::Atomic*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpDestroy(rw::Clump*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:746: undefined reference to `rw::Clump::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:747: undefined reference to `rw::Clump::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpClone(rw::Clump*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:748: undefined reference to `rw::Clump::clone()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpStreamRead(rw::Stream*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:754: undefined reference to `rw::Clump::streamRead(rw::Stream*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:804: undefined reference to `rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/fake.cpp:757: undefined reference to `rw::Clump::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRegisterPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void const*, int, int), int (*)(void const*, int, int))':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:804: undefined reference to `rw::PluginList::registerStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpClumpRegisterPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void const*, int, int), int (*)(void const*, int, int))':
/home/pi/re3/build/../src/fakerw/fake.cpp:759: undefined reference to `rw::Clump::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicCreate()':
/home/pi/re3/build/../src/fakerw/fake.cpp:766: undefined reference to `rw::Atomic::create()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicDestroy(rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:767: undefined reference to `rw::Atomic::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicClone(rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:768: undefined reference to `rw::Atomic::clone()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicSetFrame(rw::Atomic*, rw::Frame*)':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:116: undefined reference to `rw::Frame::updateObjects()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicSetGeometry(rw::Atomic*, rw::Geometry*, unsigned int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:770: undefined reference to `rw::Atomic::setGeometry(rw::Geometry*, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicSetRenderCallBack(rw::Atomic*, rw::Atomic* (*)(rw::Atomic*))':
/home/pi/re3/build/../src/fakerw/fake.cpp:781: undefined reference to `rw::Atomic::defaultRenderCB(rw::Atomic*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/src/rwobjects.h:609: undefined reference to `rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpAtomicRegisterPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void const*, int, int))':
/home/pi/re3/build/../src/fakerw/fake.cpp:788: undefined reference to `rw::Atomic::s_plglist'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `AtomicDefaultRenderCallBack(rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:795: undefined reference to `rw::Atomic::defaultRenderCB(rw::Atomic*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldCreate(rw::BBox*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:799: undefined reference to `rw::World::create(rw::BBox*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldDestroy(rw::World*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:800: undefined reference to `rw::World::destroy()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldPluginAttach()':
/home/pi/re3/build/../src/fakerw/fake.cpp:803: undefined reference to `rw::registerMeshPlugin()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:804: undefined reference to `rw::registerNativeDataPlugin()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:805: undefined reference to `rw::registerAtomicRightsPlugin()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:806: undefined reference to `rw::registerMaterialRightsPlugin()'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:809: undefined reference to `rw::xbox::registerVertexFormatPlugin()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldRemoveCamera(rw::World*, rw::Camera*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:813: undefined reference to `rw::World::removeCamera(rw::Camera*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldAddCamera(rw::World*, rw::Camera*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:814: undefined reference to `rw::World::addCamera(rw::Camera*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldAddLight(rw::World*, rw::Light*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:822: undefined reference to `rw::World::addLight(rw::Light*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpWorldRemoveLight(rw::World*, rw::Light*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:823: undefined reference to `rw::World::removeLight(rw::Light*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXPluginAttach()':
/home/pi/re3/build/../src/fakerw/fake.cpp:831: undefined reference to `rw::registerMatFXPlugin()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXAtomicEnableEffects(rw::Atomic*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:832: undefined reference to `rw::MatFX::enableEffects(rw::Atomic*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialGetEffects(rw::Material const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:833: undefined reference to `rw::MatFX::getEffects(rw::Material const*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialSetEffects(rw::Material*, RpMatFXMaterialFlags)':
/home/pi/re3/build/../src/fakerw/fake.cpp:834: undefined reference to `rw::MatFX::setEffects(rw::Material*, unsigned int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float)':
/home/pi/re3/build/../src/fakerw/fake.cpp:836: undefined reference to `rw::MatFX::get(rw::Material const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:837: undefined reference to `rw::MatFX::setEnvTexture(rw::Texture*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:838: undefined reference to `rw::MatFX::setEnvFrame(rw::Frame*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:839: undefined reference to `rw::MatFX::setEnvCoefficient(float)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialSetEnvMapFrame(rw::Material*, rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:844: undefined reference to `rw::MatFX::get(rw::Material const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:845: undefined reference to `rw::MatFX::setEnvFrame(rw::Frame*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialSetEnvMapFrameBufferAlpha(rw::Material*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:850: undefined reference to `rw::MatFX::get(rw::Material const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:851: undefined reference to `rw::MatFX::setEnvFBAlpha(int)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialSetEnvMapCoefficient(rw::Material*, float)':
/home/pi/re3/build/../src/fakerw/fake.cpp:856: undefined reference to `rw::MatFX::get(rw::Material const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:857: undefined reference to `rw::MatFX::setEnvCoefficient(float)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpMatFXMaterialGetEnvMapCoefficient(rw::Material const*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:862: undefined reference to `rw::MatFX::get(rw::Material const*)'
/usr/bin/ld: /home/pi/re3/build/../src/fakerw/fake.cpp:863: undefined reference to `rw::MatFX::getEnvCoefficient()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpHAnimPluginAttach()':
/home/pi/re3/build/../src/fakerw/fake.cpp:869: undefined reference to `rw::registerHAnimPlugin()'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpHAnimFrameGetID(rw::Frame*)':
/home/pi/re3/build/../src/fakerw/fake.cpp:873: undefined reference to `rw::HAnimData::get(rw::Frame*)'
/usr/bin/ld: obj/linux-arm-librw_gl3_glfw-oal/Release/reVC/fake.o: in function `RpHAnimIDGetIndex(rw::HAnimHierarchy*, int)':
/home/pi/re3/build/../src/fakerw/fake.cpp:875: undefined reference to `rw::HAnimHierarchy::getIndex(int)'
/usr^Cmake[1]: *** [reVC.make:629: ../bin/linux-arm-librw_gl3_glfw-oal/Release/reVC] Interrupt
make: *** [Makefile:62: reVC] Interrupt
I decided to interrupt it, cause the initial output was way longer. Any ideas?
In Criterion RW there is the RwFrameGetLTM function that returns the updated local transformation matrix from a Frame. This is very useful so that you dont have to care about updating it or hacking around non-existant getters or setters. There is no such method in librw, making access to LTM hacky.
Please add such a method.
https://github.com/aap/librw/blob/master/src/rwobjects.h#L115
Does it support android? Of course there's original working GTA games but if you'll fix physics in the future... Then 120Hz support will be really great.
In your library you like to use the assert statement to halt program execution if an error occurred. We are currently programming a game engine that uses your library and are worried about that. What if we allow loading of resources into our engine that are not verified by us? The game engine will crash and our users are gonna be very upset.
Please consider creating an error handling system for your library :)
One of the many options are C++ exceptions. They work really great and - if you use exception handlers - clean up after themselves. You could also cook up something unique. Just please do not make the game engine crash if there is an error in assets!
Thanks.
https://github.com/aap/librw/blob/master/src/rwbase.cpp#L165
Please return a boolean if you cannot invert the matrix. Otherwise we have no idea if it did invert the matrix or not. This is a problem, because we do not want weird graphical glitches or even engine crashes due to plain bugs!
Not to mention that the argument naming is really bad. Please use the "const" qualifier for the input argument, so that the user knows which matrix goes in and which gets written out.
I do not know how to compile them and get .exe file. All I want is to open some .dff files written by renderware and convert them into 3ds max finally. So could you help me to do this? The game is not GTA but others.
Granted GTA barely uses Delta morphs, though many other Renderware games do. Is it possible to make it so extracting and editing the facial meshes in the Delta Morph PLG of a model be possible?
also abstract glfw and SDL into some window system layer
When building another project of yours that uses librw on the Macbook Pro M1, the in-game rendered world is incorrectly sized. It is roughly twice the width and height vs the actual framebuffer. This is probably due to Retina.
I was able to fix it by changing the following
Lines 1256 to 1257 in 373f839
float32 invwx = 1.0f/cam->viewWindow.x/2;
float32 invwy = 1.0f/cam->viewWindow.y/2;
and by changing
Lines 1400 to 1401 in 373f839
to
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x, (dst->height-src->height)-y,
src->width/2, src->height/2, src->width, src->height);
I'm not knowledable enough in your engine or OpenGL to see why this happens, but if you are unable, or unwilling, I can try to investigate the root cause, if there is one.
In Criterion RW Atomics are render configurations that are linked to a Geometry. They render based on a parent object, a frame. There is no such method in librw, making rendering not possible.
Rendering is achieved by drawing the geometry onto the current camera color surface. Depth information can be stored in an optional camera depth surface, too.
Please add such a system.
https://github.com/aap/librw/blob/master/src/rwobjects.h#L579
After bumping to imgui 1.83.0, imguitest
occasionally crashes with an assertion error:
imguitest: /home/maarten/programming/librw/skeleton/imgui/imgui.cpp:7147: void ImGui::ErrorCheckNewFrameSanityChecks(): Assertion `(g.IO.DeltaTime > 0.0f || g.FrameCount == 0) && "Need a positive DeltaTime!"' failed.
https://github.com/ocornut/imgui/blob/cc40ae2101acd1fb4e0585a46198e6fd12960617/imgui.cpp#L7195
I traced it back to io.DeltaTime
being zero.
When using linux+gl3+sdl2, this value is derived from SDL_GetTicks
:
Lines 300 to 303 in b164e49
io.DeltaTime
is set here:
librw/skeleton/imgui/imgui_impl_rw.cpp
Line 190 in b164e49
My old machine is too fast 😄
A 4x4 Matrix is a very heavy mathematical object in comparison to a 3x3 Matrix. I would really appreciate it if you also include a 3x3 Matrix because it is often needed to determine the dimensions of 3 dimensional point configurations. Doing things with 3x3 Matrices is just much faster.
When attempting to build reVC, I get an error telling me modulateEnvMap
doesn't exist.
When I implemented it into librw's source, it compiled fine.
In original Criterion RW, there is a function to set the current global texture lookup callback. If you set this callback then everytime rw::Texture::read is called your callback is called instead. This is really handy because you could do a lot more than just get the textures from the current TXD... you could even link look inside more TXDs than just the current TXD!
Please add such a functionality. It has been added since RW 3.5.
this used to work fine on my external monitor, but now it is scaled down on both laptop and external monitor
MBP M1
Error is:
Program received signal SIGSEGV, Segmentation fault.
0x000000000042c83d in rw::gl3::openGLFW (openparams=0x0) at /home/maarten/programming/librw/src/gl/gl3device.cpp:1645
1645 glGlobals.winWidth = openparams->width;
Backtrace of running ska2anm
without arguments is:
#0 0x000000000042c83d in rw::gl3::openGLFW (openparams=0x0)
at /home/maarten/programming/librw/src/gl/gl3device.cpp:1645
#1 0x000000000042d3d7 in rw::gl3::deviceSystemGLFW (req=rw::DEVICEOPEN, arg=0x0, n=0)
at /home/maarten/programming/librw/src/gl/gl3device.cpp:1984
#2 0x000000000040b68c in rw::Engine::open (p=0x0) at /home/maarten/programming/librw/src/engine.cpp:270
#3 0x0000000000404d4d in main (argc=1, argv=0x7fffffffdd98)
at /home/maarten/programming/librw/tools/ska2anm/ska2anm.cpp:26
Hi,
I've built both re3 and reVC for ARM (32bit) linux.
I'm running Gnome 40 on wayland and I'm using glfw from here: https://github.com/ChrisLane/glfw/tree/wayland
My platform (Odroid XU4) uses the ARM Mali wayland drivers.
Grand Theft Auto 3 from the master branch works and renders perfectly fine.
However Vice City from the miami branch doesn't render the textures on the character models correctly.
Any ideas how to resolve this?
Perhaps some setting somewhere?
The game works fine otherwise.
also abstract glfw and SDL into some window system layer
#include <rw.h>
int main() {
rw::Engine::init();
rw::Engine::open();
rw::Engine::start(nullptr);
rw::Engine::stop();
rw::Engine::close();
return 0;
}
==11896==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x7fec06b88870 in operator new(unsigned long) (/lib64/libasan.so.5+0xf0870)
#1 0x41984a in rw::wdgl::makeDefaultPipeline() /home/maarten/programming/openrw/cmake/external/librw/src/gl/wdgl.cpp:533
#2 0x4183f2 in driverOpen /home/maarten/programming/openrw/cmake/external/librw/src/gl/wdgl.cpp:28
#3 0x40b4bc in rw::PluginList::construct(void*) /home/maarten/programming/openrw/cmake/external/librw/src/plg.cpp:25
#4 0x4075c7 in rw::Engine::start(rw::EngineStartParams*) /home/maarten/programming/openrw/cmake/external/librw/src/engine.cpp:166
#5 0x401a8c in main /home/maarten/programming/openrw/tools/librw_tests.cpp:10
#6 0x7fec05dbe18a in __libc_start_main (/lib64/libc.so.6+0x2318a)
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x7fec06b88870 in operator new(unsigned long) (/lib64/libasan.so.5+0xf0870)
#1 0x41b765 in rw::d3d8::makeDefaultPipeline() /home/maarten/programming/openrw/cmake/external/librw/src/d3d/d3d8.cpp:424
#2 0x41a21c in driverOpen /home/maarten/programming/openrw/cmake/external/librw/src/d3d/d3d8.cpp:26
#3 0x40b4bc in rw::PluginList::construct(void*) /home/maarten/programming/openrw/cmake/external/librw/src/plg.cpp:25
#4 0x4075c7 in rw::Engine::start(rw::EngineStartParams*) /home/maarten/programming/openrw/cmake/external/librw/src/engine.cpp:166
#5 0x401a8c in main /home/maarten/programming/openrw/tools/librw_tests.cpp:10
#6 0x7fec05dbe18a in __libc_start_main (/lib64/libc.so.6+0x2318a)
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x7fec06b88870 in operator new(unsigned long) (/lib64/libasan.so.5+0xf0870)
#1 0x41e30b in rw::d3d9::makeDefaultPipeline() /home/maarten/programming/openrw/cmake/external/librw/src/d3d/d3d9.cpp:590
#2 0x41c2d8 in driverOpen /home/maarten/programming/openrw/cmake/external/librw/src/d3d/d3d9.cpp:34
#3 0x40b4bc in rw::PluginList::construct(void*) /home/maarten/programming/openrw/cmake/external/librw/src/plg.cpp:25
#4 0x4075c7 in rw::Engine::start(rw::EngineStartParams*) /home/maarten/programming/openrw/cmake/external/librw/src/engine.cpp:166
#5 0x401a8c in main /home/maarten/programming/openrw/tools/librw_tests.cpp:10
#6 0x7fec05dbe18a in __libc_start_main (/lib64/libc.so.6+0x2318a)
Direct leak of 56 byte(s) in 1 object(s) allocated from:
#0 0x7fec06b88870 in operator new(unsigned long) (/lib64/libasan.so.5+0xf0870)
#1 0x42123f in rw::xbox::makeDefaultPipeline() /home/maarten/programming/openrw/cmake/external/librw/src/d3d/xbox.cpp:386
#2 0x41ff60 in driverOpen /home/maarten/programming/openrw/cmake/external/librw/src/d3d/xbox.cpp:24
#3 0x40b4bc in rw::PluginList::construct(void*) /home/maarten/programming/openrw/cmake/external/librw/src/plg.cpp:25
#4 0x4075c7 in rw::Engine::start(rw::EngineStartParams*) /home/maarten/programming/openrw/cmake/external/librw/src/engine.cpp:166
#5 0x401a8c in main /home/maarten/programming/openrw/tools/librw_tests.cpp:10
#6 0x7fec05dbe18a in __libc_start_main (/lib64/libc.so.6+0x2318a)
Direct leak of 40 byte(s) in 1 object(s) allocated from:
#0 0x7fec06b88870 in operator new(unsigned long) (/lib64/libasan.so.5+0xf0870)
#1 0x40734e in rw::Engine::open() /home/maarten/programming/openrw/cmake/external/librw/src/engine.cpp:131
#2 0x401a82 in main /home/maarten/programming/openrw/tools/librw_tests.cpp:9
#3 0x7fec05dbe18a in __libc_start_main (/lib64/libc.so.6+0x2318a)
SUMMARY: AddressSanitizer: 288 byte(s) leaked in 5 allocation(s).
How do I render something with a camera? In Criterion RW there is the RwCameraBeginUpdate function. That function sets the camera as currently active camera and links its color surface as render target and its depth surface (if present) as depth buffer.
Please add such a system. Otherwise I see no way to render using just your framework.
https://github.com/aap/librw/blob/master/src/rwobjects.h#L648
Is there anyone generate .exe successfully?
Sometimes I just want to know if a Matrix is invertible. For that I have to verify if the determinant of the matrix is 0. There currently is no way to calculate the determinant of a Matrix in your library without it being part of the Matrix inversion code. Can you please add it to your math library?
Hello.
I was trying to run the REAL RenderWare in a Virtual Box machine, in a Windows XP. I done a lot, installed a lot of things (office 2002, visual studio 2002 xp, active x controls etc to have all DLL's and stuffs like that), still bugged to get the license because some bug in date license. So, I gave up trying for a lot of hours.
I sent an email to CriterionGames asked them to open source RenderWare a few days ago. They did no answer me.
After some searchs on google, I saw this project, and made me very happy some people are creating an Open Source version of RW.
Said all that, I would like to join and help the project. How can I (and other interested people) contribute?
(I particulary never used RW)
Renderware supported NGC.
In fullscreen mode intro has only sound, without video
Support GLAD as an alternative OpenGL loader to use for platforms where GLEW isn't available (eg. Switch).
Let the system provide its own glad path as well for platform specific stuff when building
steps:
./premake5 gmake //or gmake2
cd build
make config=release
../src/charset.cpp:35:8: error: use of undeclared identifier 'RWDEVICE' static RWDEVICE::Im2DVertex *vertices; ^ ../src/charset.cpp:47:20: error: use of undeclared identifier 'RWDEVICE' vertices = rwNewT(RWDEVICE::Im2DVertex, NUMCHARS*4, MEMDUR_EVENT); ^ ../src/charset.cpp:47:13: error: expected expression vertices = rwNewT(RWDEVICE::Im2DVertex, NUMCHARS*4, MEMDUR_EVENT); ^ ../src/rwengine.h:217:28: note: expanded from macro 'rwNewT' #define rwNewT(t, s, h) (t*)rw::mustmalloc_LOC((s)*sizeof(t),h,RWHERE) ^ ../src/charset.cpp:145:2: error: use of undeclared identifier 'RWDEVICE' RWDEVICE::Im2DVertex *vert; ^
keep track of number of state, buffer, texture changes, number of uniform uploads and draw calls and stuff like this
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.