mirror of
https://gitlab.com/GaryOderNichts/re3-wiiu.git
synced 2024-11-22 17:19:15 +01:00
Merge branch 'master' of https://github.com/GTAmodding/re3
This commit is contained in:
commit
0eb1913713
@ -204,6 +204,7 @@ project "librw"
|
|||||||
architecture "amd64"
|
architecture "amd64"
|
||||||
|
|
||||||
filter "platforms:win*"
|
filter "platforms:win*"
|
||||||
|
defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" }
|
||||||
staticruntime "on"
|
staticruntime "on"
|
||||||
buildoptions { "/Zc:sizedDealloc-" }
|
buildoptions { "/Zc:sizedDealloc-" }
|
||||||
|
|
||||||
|
@ -4631,7 +4631,7 @@ CCam::Process_FollowPed_Rotation(const CVector &CameraTarget, float TargetOrient
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
LookLeftRight = -CPad::GetPad(0)->LookAroundLeftRight();
|
LookLeftRight = -CPad::GetPad(0)->LookAroundLeftRight();
|
||||||
LookUpDown = -CPad::GetPad(0)->LookAroundUpDown();
|
LookUpDown = CPad::GetPad(0)->LookAroundUpDown();
|
||||||
}
|
}
|
||||||
float AlphaOffset, BetaOffset;
|
float AlphaOffset, BetaOffset;
|
||||||
if(UseMouse){
|
if(UseMouse){
|
||||||
|
@ -414,6 +414,11 @@ bool CGame::Initialise(const char* datFile)
|
|||||||
CTxdStore::Create(gameTxdSlot);
|
CTxdStore::Create(gameTxdSlot);
|
||||||
CTxdStore::AddRef(gameTxdSlot);
|
CTxdStore::AddRef(gameTxdSlot);
|
||||||
|
|
||||||
|
#ifdef EXTENDED_PIPELINES
|
||||||
|
// for generic fallback
|
||||||
|
CustomPipes::SetTxdFindCallback();
|
||||||
|
#endif
|
||||||
|
|
||||||
LoadingScreen("Loading the Game", "Loading particles", nil);
|
LoadingScreen("Loading the Game", "Loading particles", nil);
|
||||||
int particleTxdSlot = CTxdStore::AddTxdSlot("particle");
|
int particleTxdSlot = CTxdStore::AddTxdSlot("particle");
|
||||||
CTxdStore::LoadTxd(particleTxdSlot, "MODELS/PARTICLE.TXD");
|
CTxdStore::LoadTxd(particleTxdSlot, "MODELS/PARTICLE.TXD");
|
||||||
@ -498,10 +503,6 @@ bool CGame::Initialise(const char* datFile)
|
|||||||
CFileLoader::LoadLevel("GTA3.DAT");
|
CFileLoader::LoadLevel("GTA3.DAT");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EXTENDED_PIPELINES
|
|
||||||
// for generic fallback
|
|
||||||
CustomPipes::SetTxdFindCallback();
|
|
||||||
#endif
|
|
||||||
CWorld::AddParticles();
|
CWorld::AddParticles();
|
||||||
CVehicleModelInfo::LoadVehicleColours();
|
CVehicleModelInfo::LoadVehicleColours();
|
||||||
CVehicleModelInfo::LoadEnvironmentMaps();
|
CVehicleModelInfo::LoadEnvironmentMaps();
|
||||||
|
@ -354,7 +354,7 @@ __inline__ void TRACE(char *f, ...) { } // this is re3 only, and so the function
|
|||||||
#ifndef MASTER
|
#ifndef MASTER
|
||||||
#define assert(_Expression) (void)( (!!(_Expression)) || (re3_assert(#_Expression, __FILE__, __LINE__, __FUNCTION__), 0) )
|
#define assert(_Expression) (void)( (!!(_Expression)) || (re3_assert(#_Expression, __FILE__, __LINE__, __FUNCTION__), 0) )
|
||||||
#else
|
#else
|
||||||
#define assert(_Expression)
|
#define assert(_Expression) (_Expression)
|
||||||
#endif
|
#endif
|
||||||
#define ASSERT assert
|
#define ASSERT assert
|
||||||
|
|
||||||
|
@ -89,6 +89,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int vsBits;
|
int vsBits;
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
|
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
|
||||||
setIndices(header->indexBuffer);
|
setIndices(header->indexBuffer);
|
||||||
setVertexDeclaration(header->vertexDeclaration);
|
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;
|
reflProps[3] = m->surfaceProps.specular == 0.0f ? 0.0f : VehicleSpecularity;
|
||||||
d3ddevice->SetVertexShaderConstantF(VSLOC_reflProps, reflProps, 1);
|
d3ddevice->SetVertexShaderConstantF(VSLOC_reflProps, reflProps, 1);
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
if(m->texture)
|
if(m->texture)
|
||||||
d3d::setTexture(0, m->texture);
|
d3d::setTexture(0, m->texture);
|
||||||
@ -149,11 +150,11 @@ CreateVehiclePipe(void)
|
|||||||
fp = ReadTweakValueTable(fp, SpecColor);
|
fp = ReadTweakValueTable(fp, SpecColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "shaders/neoVehicle_VS.inc"
|
#include "shaders/obj/neoVehicle_VS.inc"
|
||||||
neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso);
|
neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso);
|
||||||
assert(neoVehicle_VS);
|
assert(neoVehicle_VS);
|
||||||
|
|
||||||
#include "shaders/neoVehicle_PS.inc"
|
#include "shaders/obj/neoVehicle_PS.inc"
|
||||||
neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso);
|
neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso);
|
||||||
assert(neoVehicle_PS);
|
assert(neoVehicle_PS);
|
||||||
|
|
||||||
@ -259,11 +260,11 @@ CreateWorldPipe(void)
|
|||||||
else
|
else
|
||||||
ReadTweakValueTable((char*)work_buff, WorldLightmapBlend);
|
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);
|
neoWorld_VS = rw::d3d::createVertexShader(default_UV2_VS_cso);
|
||||||
assert(neoWorld_VS);
|
assert(neoWorld_VS);
|
||||||
|
|
||||||
#include "shaders/neoWorldIII_PS.inc"
|
#include "shaders/obj/neoWorldIII_PS.inc"
|
||||||
neoWorldIII_PS = rw::d3d::createPixelShader(neoWorldIII_PS_cso);
|
neoWorldIII_PS = rw::d3d::createPixelShader(neoWorldIII_PS_cso);
|
||||||
assert(neoWorldIII_PS);
|
assert(neoWorldIII_PS);
|
||||||
|
|
||||||
@ -346,11 +347,11 @@ glossRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
void
|
void
|
||||||
CreateGlossPipe(void)
|
CreateGlossPipe(void)
|
||||||
{
|
{
|
||||||
#include "shaders/neoGloss_VS.inc"
|
#include "shaders/obj/neoGloss_VS.inc"
|
||||||
neoGloss_VS = rw::d3d::createVertexShader(neoGloss_VS_cso);
|
neoGloss_VS = rw::d3d::createVertexShader(neoGloss_VS_cso);
|
||||||
assert(neoGloss_VS);
|
assert(neoGloss_VS);
|
||||||
|
|
||||||
#include "shaders/neoGloss_PS.inc"
|
#include "shaders/obj/neoGloss_PS.inc"
|
||||||
neoGloss_PS = rw::d3d::createPixelShader(neoGloss_PS_cso);
|
neoGloss_PS = rw::d3d::createPixelShader(neoGloss_PS_cso);
|
||||||
assert(neoGloss_PS);
|
assert(neoGloss_PS);
|
||||||
|
|
||||||
@ -420,6 +421,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int vsBits;
|
int vsBits;
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
|
setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride);
|
||||||
setIndices(header->indexBuffer);
|
setIndices(header->indexBuffer);
|
||||||
setVertexDeclaration(header->vertexDeclaration);
|
setVertexDeclaration(header->vertexDeclaration);
|
||||||
@ -437,7 +439,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
|
|
||||||
SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);
|
SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
if(m->texture){
|
if(m->texture){
|
||||||
d3d::setTexture(0, m->texture);
|
d3d::setTexture(0, m->texture);
|
||||||
@ -463,7 +465,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int vsBits;
|
int vsBits;
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setStreamSource(0, (IDirect3DVertexBuffer9*)header->vertexStream[0].vertexBuffer,
|
setStreamSource(0, (IDirect3DVertexBuffer9*)header->vertexStream[0].vertexBuffer,
|
||||||
0, header->vertexStream[0].stride);
|
0, header->vertexStream[0].stride);
|
||||||
setIndices((IDirect3DIndexBuffer9*)header->indexBuffer);
|
setIndices((IDirect3DIndexBuffer9*)header->indexBuffer);
|
||||||
@ -484,7 +486,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header)
|
|||||||
|
|
||||||
SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);
|
SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255);
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
if(inst->material->texture){
|
if(inst->material->texture){
|
||||||
d3d::setTexture(0, m->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);
|
neoRim_VS = rw::d3d::createVertexShader(neoRim_VS_cso);
|
||||||
assert(neoRim_VS);
|
assert(neoRim_VS);
|
||||||
|
|
||||||
#include "shaders/neoRimSkin_VS.inc"
|
#include "shaders/obj/neoRimSkin_VS.inc"
|
||||||
neoRimSkin_VS = rw::d3d::createVertexShader(neoRimSkin_VS_cso);
|
neoRimSkin_VS = rw::d3d::createVertexShader(neoRimSkin_VS_cso);
|
||||||
assert(neoRimSkin_VS);
|
assert(neoRimSkin_VS);
|
||||||
|
|
||||||
@ -610,6 +612,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
|||||||
assert(building->instHeader->platform == PLATFORM_D3D9);
|
assert(building->instHeader->platform == PLATFORM_D3D9);
|
||||||
building->fadeAlpha = 255;
|
building->fadeAlpha = 255;
|
||||||
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
|
|
||||||
bool setupDone = false;
|
bool setupDone = false;
|
||||||
bool defer = false;
|
bool defer = false;
|
||||||
@ -639,7 +642,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
|||||||
setupDone = true;
|
setupDone = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
if(m->texture){
|
if(m->texture){
|
||||||
d3d::setTexture(0, m->texture);
|
d3d::setTexture(0, m->texture);
|
||||||
@ -702,7 +705,7 @@ RenderBlendPass(int pass)
|
|||||||
|
|
||||||
rw::RGBA color = m->color;
|
rw::RGBA color = m->color;
|
||||||
color.alpha = (color.alpha * building->fadeAlpha)/255;
|
color.alpha = (color.alpha * building->fadeAlpha)/255;
|
||||||
setMaterial(color, m->surfaceProps);
|
setMaterial(color, m->surfaceProps); // always modulate here
|
||||||
|
|
||||||
if(m->texture){
|
if(m->texture){
|
||||||
d3d::setTexture(0, m->texture);
|
d3d::setTexture(0, m->texture);
|
||||||
|
@ -87,6 +87,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
|
|
||||||
Material *m;
|
Material *m;
|
||||||
|
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setWorldMatrix(atomic->getFrame()->getLTM());
|
setWorldMatrix(atomic->getFrame()->getLTM());
|
||||||
lightingCB(atomic);
|
lightingCB(atomic);
|
||||||
|
|
||||||
@ -119,7 +120,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
while(n--){
|
while(n--){
|
||||||
m = inst->material;
|
m = inst->material;
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
setTexture(0, m->texture);
|
setTexture(0, m->texture);
|
||||||
|
|
||||||
@ -159,8 +160,8 @@ CreateVehiclePipe(void)
|
|||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/neoVehicle_fs_gl.inc"
|
#include "shaders/obj/neoVehicle_frag.inc"
|
||||||
#include "shaders/neoVehicle_vs_gl.inc"
|
#include "shaders/obj/neoVehicle_vert.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, neoVehicle_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, neoVehicle_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, neoVehicle_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, neoVehicle_frag_src, nil };
|
||||||
neoVehicleShader = Shader::create(vs, fs);
|
neoVehicleShader = Shader::create(vs, fs);
|
||||||
@ -270,8 +271,8 @@ CreateWorldPipe(void)
|
|||||||
ReadTweakValueTable((char*)work_buff, WorldLightmapBlend);
|
ReadTweakValueTable((char*)work_buff, WorldLightmapBlend);
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/neoWorldIII_fs_gl.inc"
|
#include "shaders/obj/neoWorldIII_frag.inc"
|
||||||
#include "shaders/default_UV2_gl.inc"
|
#include "shaders/obj/default_UV2_vert.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, neoWorldIII_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, neoWorldIII_frag_src, nil };
|
||||||
neoWorldShader = Shader::create(vs, fs);
|
neoWorldShader = Shader::create(vs, fs);
|
||||||
@ -378,8 +379,8 @@ CreateGlossPipe(void)
|
|||||||
using namespace rw::gl3;
|
using namespace rw::gl3;
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/neoGloss_fs_gl.inc"
|
#include "shaders/obj/neoGloss_frag.inc"
|
||||||
#include "shaders/neoGloss_vs_gl.inc"
|
#include "shaders/obj/neoGloss_vert.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, neoGloss_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, neoGloss_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, neoGloss_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, neoGloss_frag_src, nil };
|
||||||
neoGlossShader = Shader::create(vs, fs);
|
neoGlossShader = Shader::create(vs, fs);
|
||||||
@ -448,6 +449,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
|
|
||||||
Material *m;
|
Material *m;
|
||||||
|
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setWorldMatrix(atomic->getFrame()->getLTM());
|
setWorldMatrix(atomic->getFrame()->getLTM());
|
||||||
lightingCB(atomic);
|
lightingCB(atomic);
|
||||||
|
|
||||||
@ -471,7 +473,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
while(n--){
|
while(n--){
|
||||||
m = inst->material;
|
m = inst->material;
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
setTexture(0, m->texture);
|
setTexture(0, m->texture);
|
||||||
|
|
||||||
@ -498,6 +500,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
|
|
||||||
Material *m;
|
Material *m;
|
||||||
|
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
setWorldMatrix(atomic->getFrame()->getLTM());
|
setWorldMatrix(atomic->getFrame()->getLTM());
|
||||||
lightingCB(atomic);
|
lightingCB(atomic);
|
||||||
|
|
||||||
@ -519,7 +522,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
|
|||||||
while(n--){
|
while(n--){
|
||||||
m = inst->material;
|
m = inst->material;
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
setTexture(0, m->texture);
|
setTexture(0, m->texture);
|
||||||
|
|
||||||
@ -550,8 +553,8 @@ CreateRimLightPipes(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/simple_fs_gl.inc"
|
#include "shaders/obj/simple_frag.inc"
|
||||||
#include "shaders/neoRimSkin_gl.inc"
|
#include "shaders/obj/neoRimSkin_vert.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, neoRimSkin_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, neoRimSkin_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
|
||||||
neoRimSkinShader = Shader::create(vs, fs);
|
neoRimSkinShader = Shader::create(vs, fs);
|
||||||
@ -559,8 +562,8 @@ CreateRimLightPipes(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/simple_fs_gl.inc"
|
#include "shaders/obj/simple_frag.inc"
|
||||||
#include "shaders/neoRim_gl.inc"
|
#include "shaders/obj/neoRim_vert.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, neoRim_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, neoRim_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil };
|
||||||
neoRimShader = Shader::create(vs, fs);
|
neoRimShader = Shader::create(vs, fs);
|
||||||
@ -664,6 +667,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
|||||||
assert(building->instHeader->platform == PLATFORM_GL3);
|
assert(building->instHeader->platform == PLATFORM_GL3);
|
||||||
building->fadeAlpha = 255;
|
building->fadeAlpha = 255;
|
||||||
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT);
|
||||||
|
rw::uint32 flags = atomic->geometry->flags;
|
||||||
|
|
||||||
WorldLights lights;
|
WorldLights lights;
|
||||||
lights.numAmbients = 1;
|
lights.numAmbients = 1;
|
||||||
@ -703,7 +707,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
|
|||||||
setupDone = true;
|
setupDone = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
setMaterial(m->color, m->surfaceProps);
|
setMaterial(flags, m->color, m->surfaceProps);
|
||||||
|
|
||||||
setTexture(0, m->texture);
|
setTexture(0, m->texture);
|
||||||
|
|
||||||
@ -772,7 +776,7 @@ RenderBlendPass(int pass)
|
|||||||
|
|
||||||
rw::RGBA color = m->color;
|
rw::RGBA color = m->color;
|
||||||
color.alpha = (color.alpha * building->fadeAlpha)/255;
|
color.alpha = (color.alpha * building->fadeAlpha)/255;
|
||||||
setMaterial(color, m->surfaceProps);
|
setMaterial(color, m->surfaceProps); // always modulate here
|
||||||
|
|
||||||
setTexture(0, m->texture);
|
setTexture(0, m->texture);
|
||||||
|
|
||||||
|
@ -141,16 +141,16 @@ CPostFX::Open(RwCamera *cam)
|
|||||||
|
|
||||||
|
|
||||||
#ifdef RW_D3D9
|
#ifdef RW_D3D9
|
||||||
#include "shaders/colourfilterIII_PS.inc"
|
#include "shaders/obj/colourfilterIII_PS.inc"
|
||||||
colourfilterIII_PS = rw::d3d::createPixelShader(colourfilterIII_PS_cso);
|
colourfilterIII_PS = rw::d3d::createPixelShader(colourfilterIII_PS_cso);
|
||||||
#include "shaders/contrastPS.inc"
|
#include "shaders/obj/contrastPS.inc"
|
||||||
contrast_PS = rw::d3d::createPixelShader(contrastPS_cso);
|
contrast_PS = rw::d3d::createPixelShader(contrastPS_cso);
|
||||||
#endif
|
#endif
|
||||||
#ifdef RW_OPENGL
|
#ifdef RW_OPENGL
|
||||||
using namespace rw::gl3;
|
using namespace rw::gl3;
|
||||||
{
|
{
|
||||||
#include "shaders/im2d_gl.inc"
|
#include "shaders/obj/im2d_vert.inc"
|
||||||
#include "shaders/colourfilterIII_fs_gl.inc"
|
#include "shaders/obj/colourfilterIII_frag.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, colourfilterIII_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, colourfilterIII_frag_src, nil };
|
||||||
colourFilterIII = Shader::create(vs, fs);
|
colourFilterIII = Shader::create(vs, fs);
|
||||||
@ -158,8 +158,8 @@ CPostFX::Open(RwCamera *cam)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
#include "shaders/im2d_gl.inc"
|
#include "shaders/obj/im2d_vert.inc"
|
||||||
#include "shaders/contrast_fs_gl.inc"
|
#include "shaders/obj/contrast_frag.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, contrast_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, contrast_frag_src, nil };
|
||||||
contrast = Shader::create(vs, fs);
|
contrast = Shader::create(vs, fs);
|
||||||
|
@ -112,14 +112,14 @@ ScreenDroplets::InitDraw(void)
|
|||||||
|
|
||||||
openim2d_uv2();
|
openim2d_uv2();
|
||||||
#ifdef RW_D3D9
|
#ifdef RW_D3D9
|
||||||
#include "shaders/screenDroplet_PS.inc"
|
#include "shaders/obj/screenDroplet_PS.inc"
|
||||||
screenDroplet_PS = rw::d3d::createPixelShader(screenDroplet_PS_cso);
|
screenDroplet_PS = rw::d3d::createPixelShader(screenDroplet_PS_cso);
|
||||||
#endif
|
#endif
|
||||||
#ifdef RW_GL3
|
#ifdef RW_GL3
|
||||||
using namespace rw::gl3;
|
using namespace rw::gl3;
|
||||||
{
|
{
|
||||||
#include "shaders/im2d_UV2_gl.inc"
|
#include "shaders/obj/im2d_UV2_vert.inc"
|
||||||
#include "shaders/screenDroplet_fs_gl.inc"
|
#include "shaders/obj/screenDroplet_frag.inc"
|
||||||
const char *vs[] = { shaderDecl, header_vert_src, im2d_UV2_vert_src, nil };
|
const char *vs[] = { shaderDecl, header_vert_src, im2d_UV2_vert_src, nil };
|
||||||
const char *fs[] = { shaderDecl, header_frag_src, screenDroplet_frag_src, nil };
|
const char *fs[] = { shaderDecl, header_frag_src, screenDroplet_frag_src, nil };
|
||||||
screenDroplet = Shader::create(vs, fs);
|
screenDroplet = Shader::create(vs, fs);
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
all: im2d_gl.inc simple_fs_gl.inc default_UV2_gl.inc \
|
|
||||||
colourfilterIII_fs_gl.inc contrast_fs_gl.inc \
|
|
||||||
neoRim_gl.inc neoRimSkin_gl.inc \
|
|
||||||
neoWorldIII_fs_gl.inc neoGloss_vs_gl.inc neoGloss_fs_gl.inc \
|
|
||||||
neoVehicle_vs_gl.inc neoVehicle_fs_gl.inc \
|
|
||||||
im2d_UV2_gl.inc screenDroplet_fs_gl.inc
|
|
||||||
|
|
||||||
im2d_gl.inc: im2d.vert
|
|
||||||
(echo 'const char *im2d_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' im2d.vert;\
|
|
||||||
echo ';') >im2d_gl.inc
|
|
||||||
|
|
||||||
simple_fs_gl.inc: simple.frag
|
|
||||||
(echo 'const char *simple_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' simple.frag;\
|
|
||||||
echo ';') >simple_fs_gl.inc
|
|
||||||
|
|
||||||
default_UV2_gl.inc: default_UV2.vert
|
|
||||||
(echo 'const char *default_UV2_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' default_UV2.vert;\
|
|
||||||
echo ';') >default_UV2_gl.inc
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
colourfilterIII_fs_gl.inc: colourfilterIII.frag
|
|
||||||
(echo 'const char *colourfilterIII_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' colourfilterIII.frag;\
|
|
||||||
echo ';') >colourfilterIII_fs_gl.inc
|
|
||||||
|
|
||||||
contrast_fs_gl.inc: contrast.frag
|
|
||||||
(echo 'const char *contrast_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' contrast.frag;\
|
|
||||||
echo ';') >contrast_fs_gl.inc
|
|
||||||
|
|
||||||
|
|
||||||
neoRim_gl.inc: neoRim.vert
|
|
||||||
(echo 'const char *neoRim_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoRim.vert;\
|
|
||||||
echo ';') >neoRim_gl.inc
|
|
||||||
|
|
||||||
neoRimSkin_gl.inc: neoRimSkin.vert
|
|
||||||
(echo 'const char *neoRimSkin_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoRimSkin.vert;\
|
|
||||||
echo ';') >neoRimSkin_gl.inc
|
|
||||||
|
|
||||||
neoWorldIII_fs_gl.inc: neoWorldIII.frag
|
|
||||||
(echo 'const char *neoWorldIII_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoWorldIII.frag;\
|
|
||||||
echo ';') >neoWorldIII_fs_gl.inc
|
|
||||||
|
|
||||||
neoGloss_fs_gl.inc: neoGloss.frag
|
|
||||||
(echo 'const char *neoGloss_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoGloss.frag;\
|
|
||||||
echo ';') >neoGloss_fs_gl.inc
|
|
||||||
|
|
||||||
neoGloss_vs_gl.inc: neoGloss.vert
|
|
||||||
(echo 'const char *neoGloss_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoGloss.vert;\
|
|
||||||
echo ';') >neoGloss_vs_gl.inc
|
|
||||||
|
|
||||||
neoVehicle_vs_gl.inc: neoVehicle.vert
|
|
||||||
(echo 'const char *neoVehicle_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoVehicle.vert;\
|
|
||||||
echo ';') >neoVehicle_vs_gl.inc
|
|
||||||
|
|
||||||
neoVehicle_fs_gl.inc: neoVehicle.frag
|
|
||||||
(echo 'const char *neoVehicle_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' neoVehicle.frag;\
|
|
||||||
echo ';') >neoVehicle_fs_gl.inc
|
|
||||||
|
|
||||||
im2d_UV2_gl.inc: im2d_UV2.vert
|
|
||||||
(echo 'const char *im2d_UV2_vert_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' im2d_UV2.vert;\
|
|
||||||
echo ';') >im2d_UV2_gl.inc
|
|
||||||
|
|
||||||
screenDroplet_fs_gl.inc: screenDroplet.frag
|
|
||||||
(echo 'const char *screenDroplet_frag_src =';\
|
|
||||||
sed 's/..*/"&\\n"/' screenDroplet.frag;\
|
|
||||||
echo ';') >screenDroplet_fs_gl.inc
|
|
9
src/extras/shaders/make_glsl.sh
Normal file
9
src/extras/shaders/make_glsl.sh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!sh
|
||||||
|
for i in *.vert; do
|
||||||
|
echo $i
|
||||||
|
./makeinc_glsl.sh $i
|
||||||
|
done
|
||||||
|
for i in *.frag; do
|
||||||
|
echo $i
|
||||||
|
./makeinc_glsl.sh $i
|
||||||
|
done
|
@ -1,3 +1,3 @@
|
|||||||
@echo off
|
@echo off
|
||||||
for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo %%~nf.cso %%f
|
for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f
|
||||||
for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo %%~nf.cso %%f
|
for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f
|
6
src/extras/shaders/makeinc_glsl.sh
Normal file
6
src/extras/shaders/makeinc_glsl.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!sh
|
||||||
|
ext=${1##*.}
|
||||||
|
name=${1%.*}
|
||||||
|
(echo "const char *${name}_${ext}_src =";\
|
||||||
|
sed 's/..*/"&\\n"/' $1;\
|
||||||
|
echo ';') > obj/${name}_${ext}.inc
|
@ -1,4 +1,5 @@
|
|||||||
#!sh
|
#!sh
|
||||||
|
cd obj
|
||||||
for i in *cso; do
|
for i in *cso; do
|
||||||
(echo -n 'static '
|
(echo -n 'static '
|
||||||
xxd -i $i | grep -v '_len = ') > ${i%cso}inc
|
xxd -i $i | grep -v '_len = ') > ${i%cso}inc
|
@ -3454,7 +3454,7 @@ CPed::BeingDraggedFromCar(void)
|
|||||||
#ifdef VC_PED_PORTS
|
#ifdef VC_PED_PORTS
|
||||||
if (m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) {
|
if (m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) {
|
||||||
if (m_pMyVehicle) {
|
if (m_pMyVehicle) {
|
||||||
m_pMyVehicle->ProcessOpenDoor(m_vehDoor, NUM_ANIMS, m_pVehicleAnim->currentTime * 5.0f);
|
m_pMyVehicle->ProcessOpenDoor(m_vehDoor, ANIM_STD_NUM, m_pVehicleAnim->currentTime * 5.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -451,6 +451,7 @@ CFont::Shutdown(void)
|
|||||||
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
||||||
ButtonSprite[i].Delete();
|
ButtonSprite[i].Delete();
|
||||||
CTxdStore::RemoveTxdSlot(ButtonsSlot);
|
CTxdStore::RemoveTxdSlot(ButtonsSlot);
|
||||||
|
ButtonsSlot = -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Sprite[0].Delete();
|
Sprite[0].Delete();
|
||||||
|
@ -1150,18 +1150,18 @@ void CHud::Draw()
|
|||||||
if (IntroRect.m_nTextureId >= 0) {
|
if (IntroRect.m_nTextureId >= 0) {
|
||||||
CRect rect (
|
CRect rect (
|
||||||
IntroRect.m_sRect.left,
|
IntroRect.m_sRect.left,
|
||||||
IntroRect.m_sRect.top,
|
IntroRect.m_sRect.bottom,
|
||||||
IntroRect.m_sRect.right,
|
IntroRect.m_sRect.right,
|
||||||
IntroRect.m_sRect.bottom );
|
IntroRect.m_sRect.top );
|
||||||
|
|
||||||
CTheScripts::ScriptSprites[IntroRect.m_nTextureId].Draw(rect, IntroRect.m_sColor);
|
CTheScripts::ScriptSprites[IntroRect.m_nTextureId].Draw(rect, IntroRect.m_sColor);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CRect rect (
|
CRect rect (
|
||||||
IntroRect.m_sRect.left,
|
IntroRect.m_sRect.left,
|
||||||
IntroRect.m_sRect.top,
|
IntroRect.m_sRect.bottom,
|
||||||
IntroRect.m_sRect.right,
|
IntroRect.m_sRect.right,
|
||||||
IntroRect.m_sRect.bottom );
|
IntroRect.m_sRect.top );
|
||||||
|
|
||||||
CSprite2d::DrawRect(rect, IntroRect.m_sColor);
|
CSprite2d::DrawRect(rect, IntroRect.m_sColor);
|
||||||
}
|
}
|
||||||
|
2
vendor/librw
vendored
2
vendor/librw
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 60a5ace16309ccd3d174a3ec14a1062540934066
|
Subproject commit 5c95300890559c85a2764bc200361f904cd4f9f4
|
Loading…
Reference in New Issue
Block a user