projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gameserver optimisations
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_render.c
diff --git
a/world_render.c
b/world_render.c
index 281a6e7a69cb8f75857d4ac16f49aa5a4ba8ff8a..04db5a008a123f8314a8447272c88c8007ebaaf7 100644
(file)
--- a/
world_render.c
+++ b/
world_render.c
@@
-12,6
+12,7
@@
#include "respawn.h"
#include "ent_miniworld.h"
#include "player_remote.h"
#include "respawn.h"
#include "ent_miniworld.h"
#include "player_remote.h"
+#include "ent_skateshop.h"
static int ccmd_set_time( int argc, const char *argv[] ){
world_instance *world = world_current_instance();
static int ccmd_set_time( int argc, const char *argv[] ){
world_instance *world = world_current_instance();
@@
-278,18
+279,25
@@
void world_render_both_stages( world_instance *world, struct world_pass *pass )
glEnable( GL_CULL_FACE );
}
glEnable( GL_CULL_FACE );
}
+static GLuint world_get_texture( world_instance *world, u32 id ){
+ if( id & 0x80000000 )
+ return skaterift.rt_textures[id & ~0x80000000];
+ else
+ return world->textures[ id ];
+}
+
static void bindpoint_diffuse_texture1( world_instance *world,
static void bindpoint_diffuse_texture1( world_instance *world,
- struct world_surface *mat )
-
-{
+ struct world_surface *mat ){
glActiveTexture( GL_TEXTURE1 );
glActiveTexture( GL_TEXTURE1 );
- glBindTexture( GL_TEXTURE_2D, world->textures[ mat->info.tex_diffuse ] );
+ glBindTexture( GL_TEXTURE_2D,
+ world_get_texture(world,mat->info.tex_diffuse) );
}
static void bindpoint_diffuse1_and_cubemap10( world_instance *world,
struct world_surface *mat ){
glActiveTexture( GL_TEXTURE1 );
}
static void bindpoint_diffuse1_and_cubemap10( world_instance *world,
struct world_surface *mat ){
glActiveTexture( GL_TEXTURE1 );
- glBindTexture( GL_TEXTURE_2D, world->textures[ mat->info.tex_diffuse ] );
+ glBindTexture( GL_TEXTURE_2D,
+ world_get_texture(world,mat->info.tex_diffuse) );
u32 cubemap_id = mat->info.tex_none0,
cubemap_index = 0;
u32 cubemap_id = mat->info.tex_none0,
cubemap_index = 0;
@@
-645,7
+653,8
@@
static void bindpoint_terrain( world_instance *world,
struct world_surface *mat )
{
glActiveTexture( GL_TEXTURE1 );
struct world_surface *mat )
{
glActiveTexture( GL_TEXTURE1 );
- glBindTexture( GL_TEXTURE_2D, world->textures[ mat->info.tex_diffuse ] );
+ glBindTexture( GL_TEXTURE_2D,
+ world_get_texture(world,mat->info.tex_diffuse) );
shader_scene_terrain_uSandColour( mat->info.colour );
shader_scene_terrain_uBlendOffset( mat->info.colour1 );
shader_scene_terrain_uSandColour( mat->info.colour );
shader_scene_terrain_uBlendOffset( mat->info.colour1 );
@@
-658,7
+667,8
@@
static void bindpoint_override( world_instance *world,
}
else{
glActiveTexture( GL_TEXTURE1 );
}
else{
glActiveTexture( GL_TEXTURE1 );
- glBindTexture( GL_TEXTURE_2D, world->textures[ mat->info.tex_diffuse ] );
+ glBindTexture( GL_TEXTURE_2D,
+ world_get_texture(world,mat->info.tex_diffuse) );
shader_scene_override_uAlphatest(1);
}
}
shader_scene_override_uAlphatest(1);
}
}
@@
-762,6
+772,8
@@
static void render_world_gates( world_instance *world, camera *cam ){
for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
ent_gate *gi = mdl_arritm( &world->ent_gate, i );
for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
ent_gate *gi = mdl_arritm( &world->ent_gate, i );
+ if( !(gi->flags & k_ent_gate_linked) )
+ continue;
float dist = v3_dist2( gi->co[0], cam->transform[3] );
float dist = v3_dist2( gi->co[0], cam->transform[3] );
@@
-973,7
+985,7
@@
static void render_world_override( world_instance *world,
world_instance *lighting_source,
m4x3f mmdl,
camera *cam,
world_instance *lighting_source,
m4x3f mmdl,
camera *cam,
- ent_spawn *dest_spawn,
f32 iso_amt
){
+ ent_spawn *dest_spawn,
v4f map_info
){
struct world_pass pass = {
.cam = cam,
.fn_bind_textures = bindpoint_override,
struct world_pass pass = {
.cam = cam,
.fn_bind_textures = bindpoint_override,
@@
-987,7
+999,7
@@
static void render_world_override( world_instance *world,
shader_scene_override_uTexGarbage(0);
shader_scene_override_uTexMain(1);
shader_scene_override_uPv( pass.cam->mtx.pv );
shader_scene_override_uTexGarbage(0);
shader_scene_override_uTexMain(1);
shader_scene_override_uPv( pass.cam->mtx.pv );
- shader_scene_override_u
IsoAmt( iso_amt
);
+ shader_scene_override_u
MapInfo( map_info
);
WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( lighting_source, scene_override );
bind_terrain_noise();
WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( lighting_source, scene_override );
bind_terrain_noise();