Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Merge branch 'master' of https://github.com/GTAmodding/re3
  • Loading branch information
erorcun committed Feb 8, 2021
2 parents d224f8b + 6662e60 commit 0eb191371388e5b25fbc957ca928c457fc544b21
Showing with 78 additions and 131 deletions.
  1. +1 −0 premake5.lua
  2. +1 −1 src/core/Cam.cpp
  3. +5 −4 src/core/Game.cpp
  4. +1 −1 src/core/common.h
  5. +17 −14 src/extras/custompipes_d3d9.cpp
  6. +19 −15 src/extras/custompipes_gl.cpp
  7. +6 −6 src/extras/postfx.cpp
  8. +3 −3 src/extras/screendroplets.cpp
  9. +0 −79 src/extras/shaders/Makefile
  10. +9 −0 src/extras/shaders/make_glsl.sh
  11. +2 −2 src/extras/shaders/{make.cmd → make_hlsl.cmd}
  12. +6 −0 src/extras/shaders/makeinc_glsl.sh
  13. +1 −0 src/extras/shaders/{makeinc.sh → makeinc_hlsl.sh}
  14. BIN src/extras/shaders/{ → obj}/colourfilterIII_PS.cso
  15. 0 src/extras/shaders/{ → obj}/colourfilterIII_PS.inc
  16. 0 src/extras/shaders/{colourfilterIII_fs_gl.inc → obj/colourfilterIII_frag.inc}
  17. BIN src/extras/shaders/{ → obj}/contrastPS.cso
  18. 0 src/extras/shaders/{ → obj}/contrastPS.inc
  19. 0 src/extras/shaders/{contrast_fs_gl.inc → obj/contrast_frag.inc}
  20. BIN src/extras/shaders/{ → obj}/default_UV2_VS.cso
  21. 0 src/extras/shaders/{ → obj}/default_UV2_VS.inc
  22. 0 src/extras/shaders/{default_UV2_gl.inc → obj/default_UV2_vert.inc}
  23. 0 src/extras/shaders/{im2d_UV2_gl.inc → obj/im2d_UV2_vert.inc}
  24. 0 src/extras/shaders/{im2d_gl.inc → obj/im2d_vert.inc}
  25. BIN src/extras/shaders/{ → obj}/neoGloss_PS.cso
  26. 0 src/extras/shaders/{ → obj}/neoGloss_PS.inc
  27. BIN src/extras/shaders/{ → obj}/neoGloss_VS.cso
  28. 0 src/extras/shaders/{ → obj}/neoGloss_VS.inc
  29. 0 src/extras/shaders/{neoGloss_fs_gl.inc → obj/neoGloss_frag.inc}
  30. 0 src/extras/shaders/{neoGloss_vs_gl.inc → obj/neoGloss_vert.inc}
  31. BIN src/extras/shaders/{ → obj}/neoRimSkin_VS.cso
  32. 0 src/extras/shaders/{ → obj}/neoRimSkin_VS.inc
  33. 0 src/extras/shaders/{neoRimSkin_gl.inc → obj/neoRimSkin_vert.inc}
  34. BIN src/extras/shaders/{ → obj}/neoRim_VS.cso
  35. 0 src/extras/shaders/{ → obj}/neoRim_VS.inc
  36. 0 src/extras/shaders/{neoRim_gl.inc → obj/neoRim_vert.inc}
  37. BIN src/extras/shaders/{ → obj}/neoVehicle_PS.cso
  38. 0 src/extras/shaders/{ → obj}/neoVehicle_PS.inc
  39. BIN src/extras/shaders/{ → obj}/neoVehicle_VS.cso
  40. 0 src/extras/shaders/{ → obj}/neoVehicle_VS.inc
  41. 0 src/extras/shaders/{neoVehicle_fs_gl.inc → obj/neoVehicle_frag.inc}
  42. 0 src/extras/shaders/{neoVehicle_vs_gl.inc → obj/neoVehicle_vert.inc}
  43. BIN src/extras/shaders/{ → obj}/neoWorldIII_PS.cso
  44. 0 src/extras/shaders/{ → obj}/neoWorldIII_PS.inc
  45. 0 src/extras/shaders/{neoWorldIII_fs_gl.inc → obj/neoWorldIII_frag.inc}
  46. BIN src/extras/shaders/{ → obj}/screenDroplet_PS.cso
  47. 0 src/extras/shaders/{ → obj}/screenDroplet_PS.inc
  48. 0 src/extras/shaders/{screenDroplet_fs_gl.inc → obj/screenDroplet_frag.inc}
  49. 0 src/extras/shaders/{simple_fs_gl.inc → obj/simple_frag.inc}
  50. +1 −1 src/peds/PedAI.cpp
  51. +1 −0 src/render/Font.cpp
  52. +4 −4 src/render/Hud.cpp
  53. +1 −1 vendor/librw
@@ -204,6 +204,7 @@ project "librw"
architecture "amd64"

filter "platforms:win*"
defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" }
staticruntime "on"
buildoptions { "/Zc:sizedDealloc-" }

@@ -4631,7 +4631,7 @@ CCam::Process_FollowPed_Rotation(const CVector &CameraTarget, float TargetOrient
*/
{
LookLeftRight = -CPad::GetPad(0)->LookAroundLeftRight();
LookUpDown = -CPad::GetPad(0)->LookAroundUpDown();
LookUpDown = CPad::GetPad(0)->LookAroundUpDown();
}
float AlphaOffset, BetaOffset;
if(UseMouse){
@@ -414,6 +414,11 @@ bool CGame::Initialise(const char* datFile)
CTxdStore::Create(gameTxdSlot);
CTxdStore::AddRef(gameTxdSlot);

#ifdef EXTENDED_PIPELINES
// for generic fallback
CustomPipes::SetTxdFindCallback();
#endif

LoadingScreen("Loading the Game", "Loading particles", nil);
int particleTxdSlot = CTxdStore::AddTxdSlot("particle");
CTxdStore::LoadTxd(particleTxdSlot, "MODELS/PARTICLE.TXD");
@@ -498,10 +503,6 @@ bool CGame::Initialise(const char* datFile)
CFileLoader::LoadLevel("GTA3.DAT");
#endif

#ifdef EXTENDED_PIPELINES
// for generic fallback
CustomPipes::SetTxdFindCallback();
#endif
CWorld::AddParticles();
CVehicleModelInfo::LoadVehicleColours();
CVehicleModelInfo::LoadEnvironmentMaps();
@@ -354,7 +354,7 @@ __inline__ void TRACE(char *f, ...) { } // this is re3 only, and so the function
#ifndef MASTER
#define assert(_Expression) (void)( (!!(_Expression)) || (re3_assert(#_Expression, __FILE__, __LINE__, __FUNCTION__), 0) )
#else
#define assert(_Expression)
#define assert(_Expression) (_Expression)
#endif
#define ASSERT assert

@@ -89,6 +89,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
}

int vsBits;
rw::uint32 flags = atomic->geometry->flags;
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
setIndices(header->indexBuffer);
setVertexDeclaration(header->vertexDeclaration);
@@ -120,7 +121,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
reflProps[3] = m->surfaceProps.specular == 0.0f ? 0.0f : VehicleSpecularity;
d3ddevice->SetVertexShaderConstantF(VSLOC_reflProps, reflProps, 1);

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

if(m->texture)
d3d::setTexture(0, m->texture);
@@ -149,11 +150,11 @@ CreateVehiclePipe(void)
fp = ReadTweakValueTable(fp, SpecColor);
}

#include "shaders/neoVehicle_VS.inc"
#include "shaders/obj/neoVehicle_VS.inc"
neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso);
assert(neoVehicle_VS);

#include "shaders/neoVehicle_PS.inc"
#include "shaders/obj/neoVehicle_PS.inc"
neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso);
assert(neoVehicle_PS);

@@ -259,11 +260,11 @@ CreateWorldPipe(void)
else
ReadTweakValueTable((char*)work_buff, WorldLightmapBlend);

#include "shaders/default_UV2_VS.inc"
#include "shaders/obj/default_UV2_VS.inc"
neoWorld_VS = rw::d3d::createVertexShader(default_UV2_VS_cso);
assert(neoWorld_VS);

#include "shaders/neoWorldIII_PS.inc"
#include "shaders/obj/neoWorldIII_PS.inc"
neoWorldIII_PS = rw::d3d::createPixelShader(neoWorldIII_PS_cso);
assert(neoWorldIII_PS);

@@ -346,11 +347,11 @@ glossRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
void
CreateGlossPipe(void)
{
#include "shaders/neoGloss_VS.inc"
#include "shaders/obj/neoGloss_VS.inc"
neoGloss_VS = rw::d3d::createVertexShader(neoGloss_VS_cso);
assert(neoGloss_VS);

#include "shaders/neoGloss_PS.inc"
#include "shaders/obj/neoGloss_PS.inc"
neoGloss_PS = rw::d3d::createPixelShader(neoGloss_PS_cso);
assert(neoGloss_PS);

@@ -420,6 +421,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
}

int vsBits;
rw::uint32 flags = atomic->geometry->flags;
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
setIndices(header->indexBuffer);
setVertexDeclaration(header->vertexDeclaration);
@@ -437,7 +439,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)

SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

if(m->texture){
d3d::setTexture(0, m->texture);
@@ -463,7 +465,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
}

int vsBits;

rw::uint32 flags = atomic->geometry->flags;
setStreamSource(0, (IDirect3DVertexBuffer9*)header->vertexStream[0].vertexBuffer,
0, header->vertexStream[0].stride);
setIndices((IDirect3DIndexBuffer9*)header->indexBuffer);
@@ -484,7 +486,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)

SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

if(inst->material->texture){
d3d::setTexture(0, m->texture);
@@ -512,11 +514,11 @@ CreateRimLightPipes(void)
}


#include "shaders/neoRim_VS.inc"
#include "shaders/obj/neoRim_VS.inc"
neoRim_VS = rw::d3d::createVertexShader(neoRim_VS_cso);
assert(neoRim_VS);

#include "shaders/neoRimSkin_VS.inc"
#include "shaders/obj/neoRimSkin_VS.inc"
neoRimSkin_VS = rw::d3d::createVertexShader(neoRimSkin_VS_cso);
assert(neoRimSkin_VS);

@@ -610,6 +612,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
assert(building->instHeader->platform == PLATFORM_D3D9);
building->fadeAlpha = 255;
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
rw::uint32 flags = atomic->geometry->flags;

bool setupDone = false;
bool defer = false;
@@ -639,7 +642,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
setupDone = true;
}

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

if(m->texture){
d3d::setTexture(0, m->texture);
@@ -702,7 +705,7 @@ RenderBlendPass(int pass)

rw::RGBA color = m->color;
color.alpha = (color.alpha * building->fadeAlpha)/255;
setMaterial(color, m->surfaceProps);
setMaterial(color, m->surfaceProps); // always modulate here

if(m->texture){
d3d::setTexture(0, m->texture);
@@ -87,6 +87,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)

Material *m;

rw::uint32 flags = atomic->geometry->flags;
setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic);

@@ -119,7 +120,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
while(n--){
m = inst->material;

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

setTexture(0, m->texture);

@@ -159,8 +160,8 @@ CreateVehiclePipe(void)


{
#include "shaders/neoVehicle_fs_gl.inc"
#include "shaders/neoVehicle_vs_gl.inc"
#include "shaders/obj/neoVehicle_frag.inc"
#include "shaders/obj/neoVehicle_vert.inc"
const char *vs[] = { shaderDecl, header_vert_src, neoVehicle_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, neoVehicle_frag_src, nil };
neoVehicleShader = Shader::create(vs, fs);
@@ -270,8 +271,8 @@ CreateWorldPipe(void)
ReadTweakValueTable((char*)work_buff, WorldLightmapBlend);

{
#include "shaders/neoWorldIII_fs_gl.inc"
#include "shaders/default_UV2_gl.inc"
#include "shaders/obj/neoWorldIII_frag.inc"
#include "shaders/obj/default_UV2_vert.inc"
const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, neoWorldIII_frag_src, nil };
neoWorldShader = Shader::create(vs, fs);
@@ -378,8 +379,8 @@ CreateGlossPipe(void)
using namespace rw::gl3;

{
#include "shaders/neoGloss_fs_gl.inc"
#include "shaders/neoGloss_vs_gl.inc"
#include "shaders/obj/neoGloss_frag.inc"
#include "shaders/obj/neoGloss_vert.inc"
const char *vs[] = { shaderDecl, header_vert_src, neoGloss_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, neoGloss_frag_src, nil };
neoGlossShader = Shader::create(vs, fs);
@@ -448,6 +449,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)

Material *m;

rw::uint32 flags = atomic->geometry->flags;
setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic);

@@ -471,7 +473,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
while(n--){
m = inst->material;

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

setTexture(0, m->texture);

@@ -498,6 +500,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)

Material *m;

rw::uint32 flags = atomic->geometry->flags;
setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic);

@@ -519,7 +522,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
while(n--){
m = inst->material;

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

setTexture(0, m->texture);

@@ -550,17 +553,17 @@ CreateRimLightPipes(void)
}

{
#include "shaders/simple_fs_gl.inc"
#include "shaders/neoRimSkin_gl.inc"
#include "shaders/obj/simple_frag.inc"
#include "shaders/obj/neoRimSkin_vert.inc"
const char *vs[] = { shaderDecl, header_vert_src, neoRimSkin_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
neoRimSkinShader = Shader::create(vs, fs);
assert(neoRimSkinShader);
}

{
#include "shaders/simple_fs_gl.inc"
#include "shaders/neoRim_gl.inc"
#include "shaders/obj/simple_frag.inc"
#include "shaders/obj/neoRim_vert.inc"
const char *vs[] = { shaderDecl, header_vert_src, neoRim_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
neoRimShader = Shader::create(vs, fs);
@@ -664,6 +667,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
assert(building->instHeader->platform == PLATFORM_GL3);
building->fadeAlpha = 255;
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
rw::uint32 flags = atomic->geometry->flags;

WorldLights lights;
lights.numAmbients = 1;
@@ -703,7 +707,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
setupDone = true;
}

setMaterial(m->color, m->surfaceProps);
setMaterial(flags, m->color, m->surfaceProps);

setTexture(0, m->texture);

@@ -772,7 +776,7 @@ RenderBlendPass(int pass)

rw::RGBA color = m->color;
color.alpha = (color.alpha * building->fadeAlpha)/255;
setMaterial(color, m->surfaceProps);
setMaterial(color, m->surfaceProps); // always modulate here

setTexture(0, m->texture);

@@ -141,25 +141,25 @@ CPostFX::Open(RwCamera *cam)


#ifdef RW_D3D9
#include "shaders/colourfilterIII_PS.inc"
#include "shaders/obj/colourfilterIII_PS.inc"
colourfilterIII_PS = rw::d3d::createPixelShader(colourfilterIII_PS_cso);
#include "shaders/contrastPS.inc"
#include "shaders/obj/contrastPS.inc"
contrast_PS = rw::d3d::createPixelShader(contrastPS_cso);
#endif
#ifdef RW_OPENGL
using namespace rw::gl3;
{
#include "shaders/im2d_gl.inc"
#include "shaders/colourfilterIII_fs_gl.inc"
#include "shaders/obj/im2d_vert.inc"
#include "shaders/obj/colourfilterIII_frag.inc"
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, colourfilterIII_frag_src, nil };
colourFilterIII = Shader::create(vs, fs);
assert(colourFilterIII);
}

{
#include "shaders/im2d_gl.inc"
#include "shaders/contrast_fs_gl.inc"
#include "shaders/obj/im2d_vert.inc"
#include "shaders/obj/contrast_frag.inc"
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, contrast_frag_src, nil };
contrast = Shader::create(vs, fs);
@@ -112,14 +112,14 @@ ScreenDroplets::InitDraw(void)

openim2d_uv2();
#ifdef RW_D3D9
#include "shaders/screenDroplet_PS.inc"
#include "shaders/obj/screenDroplet_PS.inc"
screenDroplet_PS = rw::d3d::createPixelShader(screenDroplet_PS_cso);
#endif
#ifdef RW_GL3
using namespace rw::gl3;
{
#include "shaders/im2d_UV2_gl.inc"
#include "shaders/screenDroplet_fs_gl.inc"
#include "shaders/obj/im2d_UV2_vert.inc"
#include "shaders/obj/screenDroplet_frag.inc"
const char *vs[] = { shaderDecl, header_vert_src, im2d_UV2_vert_src, nil };
const char *fs[] = { shaderDecl, header_frag_src, screenDroplet_frag_src, nil };
screenDroplet = Shader::create(vs, fs);

0 comments on commit 0eb1913

Please sign in to comment.