halpz / re3

2.5k stars 422 forks source link

Unable to build on intel macOS #26

Closed joyel24 closed 6 months ago

joyel24 commented 6 months ago

OS : Intel macOS 12.7

Describe the bug Prebuild re3 works perfectly but reVC is not working. https://github.com/halpz/re3/issues/23 I wanted to fix it but I can't build either re3 or reVC on macOS.

Error occurs when ld is trying to link librw (this file especially: ../vendor/librw/lib/macosx-amd64-librw_gl3_glfw-oal/Debug/librw.a) ld is telling me the lib was not built for x86_64: unknown-unsupported file format (0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x2F 0x20 0x20 0x20 0x20 0x20 0x20 0x20)

I don't know but I suggest it can be due to premake5 & make that building librw for mac arm instead of intel... ?

I also tried to build librw separately but have issues like @halpz had about 'RWDEVICE' so I'm stuck. https://github.com/aap/librw/issues/58

Version latest miami branch

==== Building reVC (debug_macosx-amd64-librw_gl3_glfw-oal) ====
Running prebuild commands
"./../printHash.sh" "./../src/extras/GitSHA1.cpp"
GitSHA1.cpp
Linking reVC
ld: warning: directory not found for option '-L/usr/local/opt/openal-soft/lib'
ld: warning: ignoring file ../vendor/librw/lib/macosx-amd64-librw_gl3_glfw-oal/Debug/librw.a, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x2F 0x20 0x20 0x20 0x20 0x20 0x20 0x20 )
Undefined symbols for architecture x86_64:
  "_GLAD_GL_KHR_debug", referenced from:
      PushRendergroup(char const*) in RwHelper.o
      PopRendergroup() in RwHelper.o
  "rw::FrameList_::streamRead(rw::Stream*)", referenced from:
      rwFrameListStreamRead(rw::Stream*, rw::FrameList_*) in fake.o
  "rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))", referenced from:
      rw::Material::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in custompipes.o
      rw::Frame::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Clump::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Atomic::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
  "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))", referenced from:
      rw::Frame::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
      rw::Clump::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::StreamFile::open(char const*, char const*)", referenced from:
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
  "rw::ObjPipeline::destroy()", referenced from:
      CustomPipes::DestroyVehiclePipe() in custompipes_gl.o
      CustomPipes::DestroyWorldPipe() in custompipes_gl.o
      CustomPipes::DestroyGlossPipe() in custompipes_gl.o
      CustomPipes::DestroyRimLightPipes() in custompipes_gl.o
  "rw::skinGlobals", referenced from:
      attachPipe(rw::Atomic*) in RwHelper.o
      switchPipes(rw::Atomic*, int) in RwHelper.o
      rw::Skin::get(rw::Geometry const*) in custompipes.o
      rw::Skin::get(rw::Geometry const*) in fake.o
      rw::Skin::setHierarchy(rw::Atomic*, rw::HAnimHierarchy*) in fake.o
      rw::Skin::getHierarchy(rw::Atomic const*) in fake.o
  "rw::MaterialList::appendMaterial(rw::Material*)", referenced from:
      RpGeometryTriangleSetMaterial(rw::Geometry*, rw::Triangle*, rw::Material*) in fake.o
  "rw::MaterialList::findIndex(rw::Material*)", referenced from:
      RpGeometryTriangleSetMaterial(rw::Geometry*, rw::Triangle*, rw::Material*) in fake.o
  "rw::StreamMemory::open(unsigned char*, unsigned int, unsigned int)", referenced from:
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
  "rw::matFXGlobals", referenced from:
      switchPipes(rw::Atomic*, int) in RwHelper.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::TexDictionary::getCurrent()", referenced from:
      RwTexDictionaryGetCurrent() in fake.o
  "rw::TexDictionary::setCurrent(rw::TexDictionary*)", referenced from:
      RwTexDictionarySetCurrent(rw::TexDictionary*) in fake.o
  "rw::TexDictionary::streamWrite(rw::Stream*)", referenced from:
      RwTexDictionaryStreamWrite(rw::TexDictionary const*, rw::Stream*) in fake.o
  "rw::TexDictionary::find(char const*)", referenced from:
      CustomPipes::GetGlossTex(rw::Material*) in custompipes.o
      CustomPipes::EnvMapInit() in custompipes.o
      CustomPipes::customFindCB(char const*) in custompipes.o
      RwTexDictionaryFindNamedTexture(rw::TexDictionary*, char const*) in fake.o
  "rw::TexDictionary::create()", referenced from:
      RwTexDictionaryCreate() in fake.o
  "rw::TexDictionary::destroy()", referenced from:
      CustomPipes::CustomPipeShutdown() in custompipes.o
      RwTexDictionaryDestroy(rw::TexDictionary*) in fake.o
  "rw::TexDictionary::addFront(rw::Texture*)", referenced from:
      RwTexDictionaryAddTexture(rw::TexDictionary*, rw::Texture*) in fake.o
  "rw::allocLocation", referenced from:
      rw::mustmalloc_LOC(unsigned long, unsigned int, char const*) in fake.o
  "rw::GetRenderState(int)", referenced from:
      SetAlphaTest(unsigned int) in RwHelper.o
      RwRenderStateGet(RwRenderState, void*) in fake.o
  "rw::HAnimHierarchy::updateMatrices()", referenced from:
      RpHAnimHierarchyUpdateMatrices(rw::HAnimHierarchy*) in fake.o
  "rw::HAnimHierarchy::get(rw::Frame*)", referenced from:
      RpHAnimFrameGetHierarchy(rw::Frame*) in fake.o
  "rw::HAnimHierarchy::getIndex(int)", referenced from:
      RpHAnimIDGetIndex(rw::HAnimHierarchy*, int) in fake.o
  "rw::SetRenderState(int, unsigned int)", referenced from:
      CMBlur::OverlayRenderFx(rw::Camera*, rw::Raster*) in MBlur.o
      SetStencilState(int) in Renderer.o
      DefinedState() in RwHelper.o
      SetAlphaTest(unsigned int) in RwHelper.o
      RestoreAlphaTest() in RwHelper.o
      CustomPipes::EnvMapRender() in custompipes.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      ...
  "rw::AnimInterpolator::setCurrentAnim(rw::Animation*)", referenced from:
      RpHAnimHierarchySetCurrentAnim(rw::HAnimHierarchy*, rw::Animation*) in fake.o
  "rw::AnimInterpolator::addTime(float)", referenced from:
      RpHAnimHierarchyAddAnimTime(rw::HAnimHierarchy*, float) in fake.o
  "rw::GetRenderStatePtr(int)", referenced from:
      RwRenderStateGet(RwRenderState, void*) in fake.o
  "rw::SetRenderStatePtr(int, void*)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwRenderStateSet(RwRenderState, void*) in fake.o
  "rw::registerMeshPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::registerSkinPlugin()", referenced from:
      RpSkinPluginAttach() in fake.o
  "rw::registerHAnimPlugin()", referenced from:
      RpHAnimPluginAttach() in fake.o
  "rw::registerMatFXPlugin()", referenced from:
      RpMatFXPluginAttach() in fake.o
  "rw::AnimInterpolatorInfo::find(int)", referenced from:
      RpHAnimAnimationCreate(int, int, int, float) in fake.o
  "rw::registerAnisotropyPlugin()", referenced from:
      RpAnisotPluginAttach() in fake.o
  "rw::registerNativeDataPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::registerAtomicRightsPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::getMaxSupportedMaxAnisotropy()", referenced from:
      RpAnisotGetMaxSupportedMaxAnisotropy() in fake.o
  "rw::registerMaterialRightsPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::V3d::transformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*)", referenced from:
      RwV3dTransformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*) in fake.o
  "rw::d3d::isP8supported", referenced from:
      RwEngineStart() in fake.o
  "rw::gl3::flushCache()", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::lightingCB(rw::Atomic*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::setTexture(int, rw::Texture*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::setUniform(int, void*)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::shaderDecl", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::ObjPipeline::create()", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::setMaterial(rw::RGBA const&, rw::SurfaceProperties const&, float)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      rw::gl3::setMaterial(unsigned int, rw::RGBA const&, rw::SurfaceProperties const&, float) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::skinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::currentShader", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadSpecLights() in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
  "rw::gl3::defaultShader", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::setWorldMatrix(rw::Matrix*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::skinInstanceCB(rw::Geometry*, rw::gl3::InstanceDataHeader*, int)", referenced from:
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::defaultRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::header_frag_src", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::header_vert_src", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::registerUniform(char const*, rw::gl3::UniformType, int)", referenced from:
      CustomPipes::CustomPipeRegisterGL() in custompipes_gl.o
      CPostFX::InitOnce() in postfx.o
      openim2d_uv2() in screendroplets.o
  "rw::gl3::setupVertexInput(rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::defaultInstanceCB(rw::Geometry*, rw::gl3::InstanceDataHeader*, int)", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::setAttribPointers(rw::gl3::AttribDesc*, int)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::im2dOverrideShader", referenced from:
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
      ScreenDroplets::Render() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::nativeRasterOffset", referenced from:
      WorldRender::IsTextureTransparent(rw::Texture*) in custompipes_gl.o
  "rw::gl3::uploadSkinMatrices(rw::Atomic*)", referenced from:
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::teardownVertexInput(rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::disableAttribPointers(rw::gl3::AttribDesc*, int)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::needToReadBackTextures", referenced from:
      CreateTxdImageForVideoCard() in TexRead.o
  "rw::gl3::Shader::use()", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::Shader::create(char const**, char const**)", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::Shader::destroy()", referenced from:
      CustomPipes::DestroyVehiclePipe() in custompipes_gl.o
      CustomPipes::DestroyWorldPipe() in custompipes_gl.o
      CustomPipes::DestroyGlossPipe() in custompipes_gl.o
      CustomPipes::DestroyRimLightPipes() in custompipes_gl.o
      CPostFX::Close() in postfx.o
      ScreenDroplets::Shutdown() in screendroplets.o
  "rw::gl3::gl3Caps", referenced from:
      GetGPUcaps(GPUcaps*) in TexRead.o
  "rw::gl3::drawInst(rw::gl3::InstanceDataHeader*, rw::gl3::InstanceData*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::setLights(rw::WorldLights*)", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::Quat::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RtQuatRotate(RtQuat*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::im2d::RenderLine(void*, int, int, int)", referenced from:
      RwIm2DRenderLine(rw::gl3::Im2DVertex*, int, int, int) in fake.o
  "rw::im2d::RenderTriangle(void*, int, int, int, int)", referenced from:
      RwIm2DRenderTriangle(rw::gl3::Im2DVertex*, int, int, int, int) in fake.o
  "rw::im2d::RenderPrimitive(rw::PrimitiveType, void*, int)", referenced from:
      RwIm2DRenderPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int) in fake.o
  "rw::im2d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int, void*, int)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwIm2DRenderIndexedPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int, unsigned short*, int) in fake.o
  "rw::im2d::GetFarZ()", referenced from:
      RwIm2DGetFarScreenZ() in fake.o
  "rw::im2d::GetNearZ()", referenced from:
      RwIm2DGetNearScreenZ() in fake.o
  "rw::im3d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int)", referenced from:
      RwIm3DRenderLine(int, int) in fake.o
      RwIm3DRenderIndexedPrimitive(RwPrimitiveType, unsigned short*, int) in fake.o
  "rw::im3d::End()", referenced from:
      RwIm3DEnd() in fake.o
  "rw::im3d::Transform(void*, int, rw::Matrix*, unsigned int)", referenced from:
      RwIm3DTransform(rw::gl3::Im3DVertex*, unsigned int, rw::Matrix*, unsigned int) in fake.o
  "rw::xbox::registerVertexFormatPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::Clump::streamRead(rw::Stream*)", referenced from:
      RpClumpStreamRead(rw::Stream*) in fake.o
  "rw::Clump::removeAtomic(rw::Atomic*)", referenced from:
      RpClumpRemoveAtomic(rw::Clump*, rw::Atomic*) in fake.o
  "rw::Clump::clone()", referenced from:
      RpClumpClone(rw::Clump*) in fake.o
  "rw::Clump::create()", referenced from:
      RpClumpCreate() in fake.o
  "rw::Clump::render()", referenced from:
      RpClumpRender(rw::Clump*) in fake.o
  "rw::Clump::destroy()", referenced from:
      RpClumpDestroy(rw::Clump*) in fake.o
  "rw::Clump::addAtomic(rw::Atomic*)", referenced from:
      RpClumpAddAtomic(rw::Clump*, rw::Atomic*) in fake.o
  "rw::Clump::s_plglist", referenced from:
      rw::Clump::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Clump::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::Frame::removeChild()", referenced from:
      RwFrameRemoveChild(rw::Frame*) in fake.o
  "rw::Frame::updateObjects()", referenced from:
      rw::ObjectWithFrame::setFrame(rw::Frame*) in custompipes.o
      RwFrameSetIdentity(rw::Frame*) in fake.o
      RwFrameUpdateObjects(rw::Frame*) in fake.o
      rw::ObjectWithFrame::setFrame(rw::Frame*) in fake.o
  "rw::Frame::forAllChildren(rw::Frame* (*)(rw::Frame*, void*), void*)", referenced from:
      RwFrameForAllChildren(rw::Frame*, rw::Frame* (*)(rw::Frame*, void*), void*) in fake.o
  "rw::Frame::scale(rw::V3d const*, rw::CombineOp)", referenced from:
      RwFrameScale(rw::Frame*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Frame::create()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwFrameCreate() in fake.o
  "rw::Frame::getLTM()", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::AtomicFullyTransparent(rw::Atomic*, int, int) in custompipes_gl.o
      ...
  "rw::Frame::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RwFrameRotate(rw::Frame*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::Frame::destroy()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwFrameDestroy(rw::Frame*) in fake.o
  "rw::Frame::addChild(rw::Frame*, int)", referenced from:
      RwFrameAddChild(rw::Frame*, rw::Frame*) in fake.o
  "rw::Frame::s_plglist", referenced from:
      rw::Frame::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Frame::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::Frame::transform(rw::Matrix const*, rw::CombineOp)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwFrameTransform(rw::Frame*, rw::Matrix const*, RwOpCombineType) in fake.o
  "rw::Frame::translate(rw::V3d const*, rw::CombineOp)", referenced from:
      RwFrameTranslate(rw::Frame*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Image::removeMask()", referenced from:
      _psGrabScreen in glfw.o
  "rw::Image::setSearchPath(char const*)", referenced from:
      RwImageSetPath(char const*) in fake.o
  "rw::Image::free()", referenced from:
      RwImageFreePixels(rw::Image*) in fake.o
  "rw::Image::create(int, int, int)", referenced from:
      RwImageCreate(int, int, int) in fake.o
  "rw::Image::destroy()", referenced from:
      RwImageDestroy(rw::Image*) in fake.o
  "rw::Image::allocate()", referenced from:
      RwImageAllocatePixels(rw::Image*) in fake.o
  "rw::Light::create(int)", referenced from:
      RpLightCreate(int) in fake.o
  "rw::Light::destroy()", referenced from:
      RpLightDestroy(rw::Light*) in fake.o
  "rw::Light::setColor(float, float, float)", referenced from:
      RpLightSetColor(rw::Light*, rw::RGBAf const*) in fake.o
  "rw::MatFX::getEffects(rw::Material const*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      RpMatFXMaterialGetEffects(rw::Material const*) in fake.o
  "rw::MatFX::setEffects(rw::Material*, unsigned int)", referenced from:
      RpMatFXMaterialSetEffects(rw::Material*, RpMatFXMaterialFlags) in fake.o
  "rw::MatFX::envMapColor", referenced from:
      CGame::InitialiseRenderWare() in Game.o
  "rw::MatFX::envMapFlipU", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::setEnvFrame(rw::Frame*)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapFrame(rw::Material*, rw::Frame*) in fake.o
  "rw::MatFX::enableEffects(rw::Atomic*)", referenced from:
      RpMatFXAtomicEnableEffects(rw::Atomic*) in fake.o
  "rw::MatFX::setEnvFBAlpha(int)", referenced from:
      RpMatFXMaterialSetEnvMapFrameBufferAlpha(rw::Material*, int) in fake.o
  "rw::MatFX::setEnvTexture(rw::Texture*)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
  "rw::MatFX::getDualTexture()", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::MatFX::envMapApplyLight", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::envMapUseMatColor", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::getEnvCoefficient()", referenced from:
      RpMatFXMaterialGetEnvMapCoefficient(rw::Material const*) in fake.o
  "rw::MatFX::setEnvCoefficient(float)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapCoefficient(rw::Material*, float) in fake.o
  "rw::MatFX::get(rw::Material const*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapFrame(rw::Material*, rw::Frame*) in fake.o
      RpMatFXMaterialSetEnvMapFrameBufferAlpha(rw::Material*, int) in fake.o
      RpMatFXMaterialSetEnvMapCoefficient(rw::Material*, float) in fake.o
      RpMatFXMaterialGetEnvMapCoefficient(rw::Material const*) in fake.o
  "rw::World::removeLight(rw::Light*)", referenced from:
      RpWorldRemoveLight(rw::World*, rw::Light*) in fake.o
  "rw::World::removeCamera(rw::Camera*)", referenced from:
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RpWorldRemoveCamera(rw::World*, rw::Camera*) in fake.o
  "rw::World::create(rw::BBox*)", referenced from:
      RpWorldCreate(rw::BBox*) in fake.o
  "rw::World::destroy()", referenced from:
      RpWorldDestroy(rw::World*) in fake.o
  "rw::World::addLight(rw::Light*)", referenced from:
      RpWorldAddLight(rw::World*, rw::Light*) in fake.o
  "rw::World::addCamera(rw::Camera*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RpWorldAddCamera(rw::World*, rw::Camera*) in fake.o
  "rw::Atomic::uninstance()", referenced from:
      ConvertPlatformAtomic(rw::Atomic*, void*) in RwHelper.o
  "rw::Atomic::getPipeline()", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::AtomicFullyTransparent(rw::Atomic*, int, int) in custompipes_gl.o
  "rw::Atomic::setGeometry(rw::Geometry*, unsigned int)", referenced from:
      RpAtomicSetGeometry(rw::Atomic*, rw::Geometry*, unsigned int) in fake.o
  "rw::Atomic::defaultRenderCB(rw::Atomic*)", referenced from:
      rw::Atomic::setRenderCB(void (*)(rw::Atomic*)) in fake.o
      AtomicDefaultRenderCallBack(rw::Atomic*) in fake.o
  "rw::Atomic::clone()", referenced from:
      RpAtomicClone(rw::Atomic*) in fake.o
  "rw::Atomic::create()", referenced from:
      RpAtomicCreate() in fake.o
  "rw::Atomic::destroy()", referenced from:
      RpAtomicDestroy(rw::Atomic*) in fake.o
  "rw::Atomic::s_plglist", referenced from:
      rw::Atomic::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
  "rw::Camera::showRaster(unsigned int)", referenced from:
      RwCameraShowRaster(rw::Camera*, void*, unsigned int) in fake.o
  "rw::Camera::setFarPlane(float)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetFarClipPlane(rw::Camera*, float) in fake.o
  "rw::Camera::setNearPlane(float)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetNearClipPlane(rw::Camera*, float) in fake.o
  "rw::Camera::setViewOffset(rw::V2d const*)", referenced from:
      RwCameraSetViewOffset(rw::Camera*, rw::V2d const*) in fake.o
  "rw::Camera::setViewWindow(rw::V2d const*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetViewWindow(rw::Camera*, rw::V2d const*) in fake.o
  "rw::Camera::clear(rw::RGBA*, unsigned int)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwCameraClear(rw::Camera*, rw::RGBA*, int) in fake.o
  "rw::Camera::clone()", referenced from:
      RwCameraClone(rw::Camera*) in fake.o
  "rw::Camera::create()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraCreate() in fake.o
  "rw::Camera::destroy()", referenced from:
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwCameraDestroy(rw::Camera*) in fake.o
  "rw::Engine::setSubSystem(int)", referenced from:
      RwEngineSetSubSystem(int) in fake.o
  "rw::Engine::setVideoMode(int)", referenced from:
      RwEngineSetVideoMode(int) in fake.o
  "rw::Engine::getNumSubSystems()", referenced from:
      RwEngineGetNumSubSystems() in fake.o
  "rw::Engine::getNumVideoModes()", referenced from:
      RwEngineGetNumVideoModes() in fake.o
  "rw::Engine::getSubSystemInfo(rw::SubSystemInfo*, int)", referenced from:
      RwEngineGetSubSystemInfo(rw::SubSystemInfo*, int) in fake.o
  "rw::Engine::getVideoModeInfo(rw::VideoMode*, int)", referenced from:
      RwEngineGetVideoModeInfo(rw::VideoMode*, int) in fake.o
  "rw::Engine::getCurrentSubSystem()", referenced from:
      RwEngineGetCurrentSubSystem() in fake.o
  "rw::Engine::getCurrentVideoMode()", referenced from:
      RwEngineGetCurrentVideoMode() in fake.o
  "rw::Engine::setMultiSamplingLevels(unsigned int)", referenced from:
      RwD3D8EngineSetMultiSamplingLevels(unsigned int) in fake.o
  "rw::Engine::getMaxMultiSamplingLevels()", referenced from:
      RwD3D8EngineGetMaxMultiSamplingLevels() in fake.o
  "rw::Engine::init(rw::MemoryFunctions*)", referenced from:
      RwEngineInit(RwMemoryFunctions*, unsigned int, unsigned int) in fake.o
  "rw::Engine::open(rw::EngineOpenParams*)", referenced from:
      RwEngineOpen(RwEngineOpenParams*) in fake.o
  "rw::Engine::stop()", referenced from:
      RwEngineStop() in fake.o
  "rw::Engine::term()", referenced from:
      RwEngineTerm() in fake.o
  "rw::Engine::close()", referenced from:
      RwEngineClose() in fake.o
  "rw::Engine::start()", referenced from:
      RwEngineStart() in fake.o
  "rw::Engine::memfuncs", referenced from:
      RwMalloc(unsigned long) in fake.o
      RwFree(void*) in fake.o
      rwFrameListDeinitialize(rw::FrameList_*) in fake.o
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
      rw::mustmalloc_LOC(unsigned long, unsigned int, char const*) in fake.o
      RwStreamClose(rw::Stream*, void*) in fake.o
  "rw::Matrix::setIdentity()", referenced from:
      RwMatrixSetIdentity(rw::Matrix*) in fake.o
      RwFrameSetIdentity(rw::Frame*) in fake.o
  "rw::Matrix::scale(rw::V3d const*, rw::CombineOp)", referenced from:
      RwMatrixScale(rw::Matrix*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Matrix::create()", referenced from:
      RwMatrixCreate() in fake.o
  "rw::Matrix::invert(rw::Matrix*, rw::Matrix const*)", referenced from:
      RwMatrixInvert(rw::Matrix*, rw::Matrix const*) in fake.o
  "rw::Matrix::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RwMatrixRotate(rw::Matrix*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::Matrix::rotate(rw::Quat const&, rw::CombineOp)", referenced from:
      RtQuatConvertToMatrix(RtQuat const*, rw::Matrix*) in fake.o
  "rw::Matrix::destroy()", referenced from:
      RwMatrixDestroy(rw::Matrix*) in fake.o
  "rw::Matrix::transform(rw::Matrix const*, rw::CombineOp)", referenced from:
      RwMatrixTransform(rw::Matrix*, rw::Matrix const*, RwOpCombineType) in fake.o
  "rw::Matrix::translate(rw::V3d const*, rw::CombineOp)", referenced from:
      RwMatrixTranslate(rw::Matrix*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Raster::popContext()", referenced from:
      RwRasterPopContext() in fake.o
  "rw::Raster::renderFast(int, int)", referenced from:
      RwRasterRenderFast(rw::Raster*, int, int) in fake.o
  "rw::Raster::pushContext(rw::Raster*)", referenced from:
      RwRasterPushContext(rw::Raster*) in fake.o
  "rw::Raster::setFromImage(rw::Image*, int)", referenced from:
      RwRasterSetFromImage(rw::Raster*, rw::Image*) in fake.o
  "rw::Raster::getCurrentContext()", referenced from:
      RwRasterGetCurrentContext() in fake.o
  "rw::Raster::imageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*, int)", referenced from:
      RwImageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*) in fake.o
  "rw::Raster::convertTexToCurrentPlatform(rw::Raster*)", referenced from:
      rwNativeTextureHackRead(rw::Stream*, rw::Texture**, int) in fake.o
  "rw::Raster::lock(int, int)", referenced from:
      RwRasterLock(rw::Raster*, unsigned char, int) in fake.o
  "rw::Raster::create(int, int, int, int, int)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwRasterCreate(int, int, int, int) in fake.o
  "rw::Raster::unlock(int)", referenced from:
      RwRasterUnlock(rw::Raster*) in fake.o
  "rw::Raster::destroy()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwRasterDestroy(rw::Raster*) in fake.o
  "rw::Raster::toImage()", referenced from:
      _psGrabScreen in glfw.o
  "rw::engine", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      RwCameraGetCurrentCamera() in fake.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::Charset::flushBuffer()", referenced from:
      RtCharsetBufferFlush() in fake.o
  "rw::Charset::printBuffered(char const*, int, int, int)", referenced from:
      RtCharsetPrintBuffered(rw::Charset*, char const*, int, int, int) in fake.o
  "rw::Charset::open()", referenced from:
      RtCharsetOpen() in fake.o
  "rw::Charset::close()", referenced from:
      RtCharsetClose() in fake.o
  "rw::Charset::print(char const*, int, int, int)", referenced from:
      RtCharsetPrint(rw::Charset*, char const*, int, int) in fake.o
  "rw::Charset::create(rw::RGBA const*, rw::RGBA const*)", referenced from:
      RtCharsetCreate(rw::RGBA const*, rw::RGBA const*) in fake.o
  "rw::Charset::destroy()", referenced from:
      RtCharsetDestroy(rw::Charset*) in fake.o
  "rw::Charset::setColors(rw::RGBA const*, rw::RGBA const*)", referenced from:
      RtCharsetSetColors(rw::Charset*, rw::RGBA const*, rw::RGBA const*) in fake.o
  "rw::Texture::getMaxAnisotropy()", referenced from:
      RpAnisotTextureGetMaxAnisotropy(rw::Texture*) in fake.o
  "rw::Texture::setMaxAnisotropy(int)", referenced from:
      RpAnisotTextureSetMaxAnisotropy(rw::Texture*, signed char) in fake.o
  "rw::Texture::streamReadNative(rw::Stream*)", referenced from:
      rwNativeTextureHackRead(rw::Stream*, rw::Texture**, int) in fake.o
  "rw::Texture::read(char const*, char const*)", referenced from:
      RwTextureRead(char const*, char const*) in fake.o
  "rw::Texture::create(rw::Raster*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwTextureCreate(rw::Raster*) in fake.o
  "rw::Texture::findCB", referenced from:
      CustomPipes::SetTxdFindCallback() in custompipes.o
  "rw::Texture::destroy()", referenced from:
      CustomPipes::EnvMapShutdown() in custompipes.o
      RwTextureDestroy(rw::Texture*) in fake.o
  "rw::readBMP(char const*)", referenced from:
      RtBMPImageRead(char const*) in fake.o
  "rw::readPNG(char const*)", referenced from:
      RtPNGImageRead(char const*) in fake.o
  "rw::Geometry::streamRead(rw::Stream*)", referenced from:
      RpGeometryStreamRead(rw::Stream*) in fake.o
  "rw::Geometry::addMorphTargets(int)", referenced from:
      RpGeometryAddMorphTargets(rw::Geometry*, int) in fake.o
  "rw::Geometry::lock(int)", referenced from:
      RpGeometryLock(rw::Geometry*, int) in fake.o
  "rw::Geometry::create(int, int, unsigned int)", referenced from:
      RpGeometryCreate(int, int, unsigned int) in fake.o
  "rw::Geometry::unlock()", referenced from:
      RpGeometryUnlock(rw::Geometry*) in fake.o
  "rw::Geometry::destroy()", referenced from:
      RpGeometryDestroy(rw::Geometry*) in fake.o
  "rw::Material::setTexture(rw::Texture*)", referenced from:
      RpMaterialSetTexture(rw::Material*, rw::Texture*) in fake.o
  "rw::Material::create()", referenced from:
      RpMaterialCreate() in fake.o
  "rw::Material::destroy()", referenced from:
      RpMaterialDestroy(rw::Material*) in fake.o
  "rw::Material::s_plglist", referenced from:
      rw::Material::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in custompipes.o
  "rw::platform", referenced from:
      attachPipe(rw::Atomic*) in RwHelper.o
      ConvertPlatformAtomic(rw::Atomic*, void*) in RwHelper.o
      GetGPUcaps(GPUcaps*) in TexRead.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::writeBMP(rw::Image*, char const*)", referenced from:
      RtBMPImageWrite(rw::Image*, char const*) in fake.o
  "rw::writePNG(rw::Image*, char const*)", referenced from:
      RtPNGImageWrite(rw::Image*, char const*) in fake.o
  "rw::Animation::streamRead(rw::Stream*)", referenced from:
      RpHAnimAnimationStreamRead(rw::Stream*) in fake.o
  "rw::Animation::create(rw::AnimInterpolatorInfo*, int, int, float)", referenced from:
      RpHAnimAnimationCreate(int, int, int, float) in fake.o
  "rw::Animation::destroy()", referenced from:
      RpHAnimAnimationDestroy(rw::Animation*) in fake.o
  "rw::HAnimData::get(rw::Frame*)", referenced from:
      RpHAnimFrameGetID(rw::Frame*) in fake.o
      RpHAnimFrameSetHierarchy(rw::Frame*, rw::HAnimHierarchy*) in fake.o
  "rw::findChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*)", referenced from:
      RwStreamFindChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*) in fake.o
  "rw::MorphTarget::calculateBoundingSphere() const", referenced from:
      RpMorphTargetCalcBoundingSphere(rw::MorphTarget const*, rw::Sphere*) in fake.o
  "rw::Camera::frustumTestSphere(rw::Sphere const*) const", referenced from:
      RwCameraFrustumTestSphere(rw::Camera const*, rw::Sphere const*) in fake.o
  "vtable for rw::StreamFile", referenced from:
      rw::StreamFile::StreamFile() in fake.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for rw::StreamMemory", referenced from:
      rw::StreamMemory::StreamMemory() in fake.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "_alBufferData", referenced from:
      CChannel::Start() in channel.o
      CStream::FillBuffer(unsigned int*) in stream.o
  "_alBufferiv", referenced from:
      CChannel::Start() in channel.o
  "_alDeleteBuffers", referenced from:
      CChannel::DestroyChannels() in channel.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alDeleteSources", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
      CChannel::DestroyChannels() in channel.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alDistanceModel", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alGenBuffers", referenced from:
      CChannel::InitChannels() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alGenSources", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
      CChannel::InitChannels() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alGetEnumValue", referenced from:
      add_providers() in sampman_oal.o
  "_alGetError", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
  "_alGetProcAddress", referenced from:
      EFXInit() in oal_utils.o
  "_alGetSourcei", referenced from:
      CChannel::IsUsed() in channel.o
      CChannel::Update() in channel.o
      CStream::SetPlay(bool) in stream.o
      CStream::ClearBuffers() in stream.o
      CStream::IsPlaying() in stream.o
      CStream::Pause() in stream.o
      CStream::GetPosMS() in stream.o
      ...
  "_alGetString", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alIsExtensionPresent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alListener3f", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alListenerf", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alListenerfv", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alSource3f", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::SetPosition(float, float, float) in channel.o
      cSampleManager::Initialise() in sampman_oal.o
      CStream::SetPosition(int, float, float, float) in stream.o
  "_alSource3i", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::Term() in channel.o
      CChannel::SetReverbMix(unsigned int, float) in channel.o
      CChannel::UpdateReverb(unsigned int) in channel.o
  "_alSourcePause", referenced from:
      CStream::Pause() in stream.o
  "_alSourcePlay", referenced from:
      CChannel::Start() in channel.o
      CStream::SetPlay(bool) in stream.o
  "_alSourceQueueBuffers", referenced from:
      CStream::FillBuffers() in stream.o
      CStream::BufferShouldBeFilledAndQueued(std::__1::pair<unsigned int, unsigned int>*) in stream.o
      CStream::QueueBuffers() in stream.o
  "_alSourceStop", referenced from:
      CChannel::Stop() in channel.o
      CStream::SetPlay(bool) in stream.o
  "_alSourceUnqueueBuffers", referenced from:
      CStream::ClearBuffers() in stream.o
      CStream::Update() in stream.o
  "_alSourcef", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::SetPitch(float) in channel.o
      CChannel::SetGain(float) in channel.o
      CChannel::SetDistances(float, float) in channel.o
      cSampleManager::Initialise() in sampman_oal.o
      CStream::SetPitch(float) in stream.o
      CStream::SetGain(float) in stream.o
      ...
  "_alSourcei", referenced from:
      CChannel::ClearBuffer() in channel.o
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::Start() in channel.o
      CChannel::SetLoopCount(int) in channel.o
      CChannel::Update() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcCloseDevice", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcCreateContext", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcDestroyContext", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcGetIntegerv", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alcGetString", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alcIsExtensionPresent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      set_new_provider(int) in sampman_oal.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcMakeContextCurrent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcOpenDevice", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcSuspendContext", referenced from:
      cSampleManager::Terminate() in sampman_oal.o
  "_glad_glBindBuffer", referenced from:
      openim2d_uv2() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glBufferData", referenced from:
      openim2d_uv2() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glBufferSubData", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glDeleteBuffers", referenced from:
      closeim2d_uv2() in screendroplets.o
  "_glad_glDrawElements", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glGenBuffers", referenced from:
      openim2d_uv2() in screendroplets.o
  "_glad_glPopDebugGroup", referenced from:
      PopRendergroup() in RwHelper.o
  "_glad_glPushDebugGroup", referenced from:
      PushRendergroup(char const*) in RwHelper.o
  "_glad_glUniform3fv", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
  "_glad_glUniform4fv", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadSpecLights() in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../bin/macosx-amd64-librw_gl3_glfw-oal/Debug/reVC.app] Error 1
make: *** [reVC] Error 2
joyel24 commented 6 months ago

Well, I finally build it, both re3 and reVC. This is because macOS building instructions are faulty... We need to add --os=macosx to premake command, for me it worked like this:

premake5 --os=macosx --with-librw gmake2
cd build
make config=debug_macosx-amd64-librw_gl3_glfw-oal