Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rend2 Updates #30

Closed
wants to merge 52 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7ab56c4
Copy all rend2 files to sp directory
SomaZ Oct 2, 2023
c5fa1aa
[vanilla] LS_NONE -> LS_LSNONE
SomaZ Oct 2, 2023
2ca57db
COM_GetCurrentParseLine fix
SomaZ Oct 2, 2023
564648e
Prepare qcommon and rd-common
SomaZ Oct 2, 2023
b58d0bb
Patch rend2 for sp
SomaZ Oct 2, 2023
a3ef151
Move mp rend2 to shared folder
SomaZ Oct 3, 2023
6654638
[SP] rit.Malloc -> rit.Z_Malloc
SomaZ Oct 3, 2023
af50dcd
[MP] Get rid of _skinSurface_t
SomaZ Oct 3, 2023
12e6d73
[Rend2] Fix cg_showtris depthtest
SomaZ Oct 3, 2023
e40982b
[SP] Match R_LerpTag with MP API
SomaZ Oct 4, 2023
3ac87fd
[SP] Match R_LerpTag with MP API for the UI too
SomaZ Oct 4, 2023
398bc90
[SP] Match G2_SetupModelPointers with MP version
SomaZ Oct 4, 2023
cb3fbe5
[rend2] make sp renderer use the shared rend2 files
SomaZ Oct 4, 2023
8728c92
Remove duplicate files
SomaZ Oct 4, 2023
e94f98f
Fix incorrect texture coordnates
SomaZ Oct 5, 2023
80f63c3
[rend2] WIP Weather functions
SomaZ Oct 5, 2023
d4d710a
[rend2-sp] Fix broken endscreen yavin2
SomaZ Oct 5, 2023
84095a9
[rend2-sp] Fix ParseSessions
SomaZ Oct 5, 2023
58a2a51
[rend2-sp] Add missing G2 functions
SomaZ Oct 6, 2023
a540ebc
[rend2-sp] Add OpenJO cmake config
SomaZ Oct 6, 2023
ad6bccf
[rend2-sp] Add basic JO support
SomaZ Oct 7, 2023
15a2b7c
[rend2] Fix ghoul2 cache crashes
SomaZ Oct 7, 2023
8a1cb94
[rend2] Increase max fog count
SomaZ Oct 7, 2023
1f85606
[rend2-sp] Fix force push refraction and force speed doppelgaenger
SomaZ Oct 7, 2023
cbce285
[rend2-sp] Add SP tcGen environment
SomaZ Oct 7, 2023
32d51fd
[rend2-sp] Fix SP force lightning
SomaZ Oct 7, 2023
825ab84
Merge branch 'JACoders:master' into rend2-unified-wip
SomaZ Oct 7, 2023
8e9672d
[rend2-sp] Add missing entity surface render types
SomaZ Oct 7, 2023
5d78e56
[rend2] Add md3 animations back, just CPU for now
SomaZ Oct 7, 2023
14a5a18
[rend2-sp] Fix ghoul2 saber marks
SomaZ Oct 8, 2023
62c9b4c
[rend2-sp] Enabling additional sp g2 gore features
SomaZ Oct 8, 2023
f319d69
[rend2-sp] Fix vid_restart and changing renderers
SomaZ Oct 8, 2023
83c3984
[rend2] Add missing weather functions
SomaZ Oct 8, 2023
c8facdf
[SP] Increase REF_API_VERSION & UI_API_VERSION
SomaZ Oct 8, 2023
30ab592
[rend2-sp] Attempt fixing non Windows builds
SomaZ Oct 9, 2023
65b189c
[rend2] Fix viewport when RDF_NOWORLDMODEL
SomaZ Oct 9, 2023
dab5a41
[rend2-sp] Implement RDF_doLAGoggles
SomaZ Oct 9, 2023
4f3d478
[rend2] Init Uniforms for the splashScreenShader
SomaZ Oct 9, 2023
b0b5a2b
[rend2-sp] Fix LA Goggles
SomaZ Oct 11, 2023
b2fe6c1
[rend2-sp] Fix fog assignments
SomaZ Oct 11, 2023
c39945a
[rend2-sp] Make level end screenshot work correctly
SomaZ Oct 11, 2023
e654948
[rend2-sp] Implement screen dissolve
SomaZ Oct 11, 2023
1ba765b
[rend2] Don't draw shadowmap shadows for g2 effects
SomaZ Oct 11, 2023
eb53d01
[rend2] Fallback to surface normal for lighting vectors when lightgri…
SomaZ Oct 13, 2023
71c57d2
[rend2] Fix depth writes for shaders with blendFunc & sort opaque
SomaZ Oct 13, 2023
e67779a
[rend2] Load weather images as SRGB in hdr lighting conditions
SomaZ Oct 22, 2023
b23b3f1
[rend2] Fix fog color in hdr lighting conditions
SomaZ Oct 22, 2023
63249af
[SP] Match AddPolyToScene with MP
SomaZ Oct 25, 2023
730b8b4
Merge remote-tracking branch 'SomaZ/rend2-unified-wip' into rend2update
taysta Oct 28, 2023
96dd9b0
Adjust VK according to new Rend2 changes
taysta Oct 28, 2023
08fe762
Put this define back
taysta Oct 28, 2023
d6f5bec
Merge branch 'master' into rend2update
taysta Oct 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 235 additions & 0 deletions code/rd-rend2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
# Make sure the user is not executing this script directly
if(NOT InOpenJK)
message(FATAL_ERROR "Use the top-level cmake script!")
endif(NOT InOpenJK)

set(SPRend2IncludeDirectories
"${SharedDir}"
"${SharedDir}/rd-rend2"
"${SPDir}"
"${SPDir}/rd-rend2"
"${GSLIncludeDirectory}"
)

set(SPRend2Files
"${SharedDir}/rd-rend2/iqm.h"
"${SharedDir}/rd-rend2/glext.h"
"${SharedDir}/rd-rend2/qgl.h"
"${SharedDir}/rd-rend2/stb_image.h"
"${SPDir}/rd-rend2/G2_API.cpp"
"${SPDir}/rd-rend2/G2_bolts.cpp"
"${SPDir}/rd-rend2/G2_bones.cpp"
"${SharedDir}/rd-rend2/G2_gore_r2.cpp"
"${SharedDir}/rd-rend2/G2_gore_r2.h"
"${SPDir}/rd-rend2/G2_misc.cpp"
"${SPDir}/rd-rend2/G2_surfaces.cpp"
"${SharedDir}/rd-rend2/tr_allocator.cpp"
"${SharedDir}/rd-rend2/tr_allocator.h"
"${SharedDir}/rd-rend2/tr_animation.cpp"
"${SharedDir}/rd-rend2/tr_backend.cpp"
"${SharedDir}/rd-rend2/tr_bsp.cpp"
"${SharedDir}/rd-rend2/tr_cache.cpp"
"${SharedDir}/rd-rend2/tr_cache.h"
"${SharedDir}/rd-rend2/tr_cmds.cpp"
"${SharedDir}/rd-rend2/tr_curve.cpp"
"${SharedDir}/rd-rend2/tr_decals.cpp"
"${SPDir}/rd-rend2/tr_draw.cpp"
"${SharedDir}/rd-rend2/tr_extensions.cpp"
"${SharedDir}/rd-rend2/tr_extramath.cpp"
"${SharedDir}/rd-rend2/tr_extramath.h"
"${SharedDir}/rd-rend2/tr_extratypes.h"
"${SharedDir}/rd-rend2/tr_fbo.cpp"
"${SharedDir}/rd-rend2/tr_fbo.h"
"${SharedDir}/rd-rend2/tr_flares.cpp"
"${SharedDir}/rd-rend2/tr_ghoul2.cpp"
"${SharedDir}/rd-rend2/tr_glsl.cpp"
"${SharedDir}/rd-rend2/tr_glsl_parse.cpp"
"${SharedDir}/rd-rend2/tr_image.cpp"
"${SharedDir}/rd-rend2/tr_image_stb.cpp"
"${SPDir}/rd-rend2/tr_init.cpp"
"${SharedDir}/rd-rend2/tr_light.cpp"
"${SharedDir}/rd-rend2/tr_local.h"
"${SharedDir}/rd-rend2/tr_main.cpp"
"${SharedDir}/rd-rend2/tr_marks.cpp"
"${SharedDir}/rd-rend2/tr_mesh.cpp"
"${SharedDir}/rd-rend2/tr_model.cpp"
"${SharedDir}/rd-rend2/tr_model_iqm.cpp"
"${SharedDir}/rd-rend2/tr_postprocess.cpp"
"${SharedDir}/rd-rend2/tr_postprocess.h"
"${SharedDir}/rd-rend2/tr_scene.cpp"
"${SharedDir}/rd-rend2/tr_shade.cpp"
"${SharedDir}/rd-rend2/tr_shade_calc.cpp"
"${SharedDir}/rd-rend2/tr_shader.cpp"
"${SharedDir}/rd-rend2/tr_shadows.cpp"
"${SharedDir}/rd-rend2/tr_skin.cpp"
"${SharedDir}/rd-rend2/tr_sky.cpp"
"${SharedDir}/rd-rend2/tr_subs.cpp"
"${SharedDir}/rd-rend2/tr_surface.cpp"
"${SharedDir}/rd-rend2/tr_tangentspace.cpp"
"${SharedDir}/rd-rend2/tr_vbo.cpp"
"${SharedDir}/rd-rend2/tr_world.cpp"
"${SharedDir}/rd-rend2/tr_weather.cpp"
"${SharedDir}/rd-rend2/tr_weather.h")
source_group("renderer" FILES ${SPRend2Files})

file(GLOB SPRend2GLSLFiles "${SharedDir}/rd-rend2/glsl/*.glsl")
source_group("renderer\\glsl" FILES ${SPRend2GLSLFiles})
set(SPRend2Files ${SPRend2Files} ${SPRend2GLSLFiles})

set(SPRend2MikktFiles
"${SharedDir}/rd-rend2/MikkTSpace/mikktspace.h"
"${SharedDir}/rd-rend2/MikkTSpace/mikktspace.c")
source_group("MikktSpace" FILES ${SPRend2MikktFiles})
set(SPRend2Files ${SPRend2Files} ${SPRend2MikktFiles})

set(SPRend2Ghoul2Files
"${SPDir}/ghoul2/G2.h"
"${SPDir}/ghoul2/ghoul2_gore.h")
source_group("ghoul2" FILES ${SPRend2Ghoul2Files})
set(SPRend2Files ${SPRend2Files} ${SPRend2Ghoul2Files})

set(SPRend2RdCommonFiles
"${SPDir}/rd-common/mdx_format.h"
"${SPDir}/rd-common/tr_common.h"
"${SPDir}/rd-common/tr_font.cpp"
"${SPDir}/rd-common/tr_font.h"
"${SPDir}/rd-common/tr_image_load.cpp"
"${SPDir}/rd-common/tr_image_jpg.cpp"
"${SPDir}/rd-common/tr_image_tga.cpp"
"${SPDir}/rd-common/tr_image_png.cpp"
"${SPDir}/rd-common/tr_noise.cpp"
"${SPDir}/rd-common/tr_public.h"
"${SPDir}/rd-common/tr_types.h")
source_group("rd-common" FILES ${SPRend2RdCommonFiles})
set(SPRend2Files ${SPRend2Files} ${SPRend2RdCommonFiles})

set(SPRend2CommonFiles
"${SPDir}/qcommon/matcomp.cpp"
"${SPDir}/qcommon/q_shared.cpp"
"${SharedCommonFiles}")
source_group("common" FILES ${SPRend2CommonFiles})
set(SPRend2Files ${SPRend2Files} ${SPRend2CommonFiles})

set(SPRend2CommonSafeFiles
${SharedCommonSafeFiles}
)
source_group("common/safe" FILES ${SPRend2CommonSafeFiles})
set(SPRend2Files ${SPRend2Files} ${SPRend2CommonSafeFiles})

# Transparently use either bundled or system libjpeg.
list(APPEND SPRend2IncludeDirectories ${JPEG_INCLUDE_DIR})
list(APPEND SPRend2Libraries ${JPEG_LIBRARIES})

# Transparently use either bundled or system libpng. Order is important --
# libpng used zlib, so it must come before it on the linker command line.
list(APPEND SPRend2IncludeDirectories ${PNG_INCLUDE_DIRS})
list(APPEND SPRend2Libraries ${PNG_LIBRARIES})

# Transparently use either bundled or system zlib.
list(APPEND SPRend2IncludeDirectories ${ZLIB_INCLUDE_DIR})
list(APPEND SPRend2Libraries ${ZLIB_LIBRARIES})

# Transparently use our bundled minizip.
list(APPEND SPRend2IncludeDirectories ${MINIZIP_INCLUDE_DIRS})
list(APPEND SPRend2Libraries ${MINIZIP_LIBRARIES})

find_package(OpenGL REQUIRED)
set(SPRend2IncludeDirectories ${SPRend2IncludeDirectories} ${OPENGL_INCLUDE_DIR})
set(SPRend2Libraries ${SPRend2Libraries} ${OPENGL_LIBRARIES})

source_group("renderer"
FILES
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp)
set(SPRend2Files
${SPRend2Files}
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp)

set(SPRend2IncludeDirectories ${SPRend2IncludeDirectories} ${OpenJKLibDir})

function(add_sp_renderer_project ProjectName Label EngineName InstallDir Component)
add_library(${ProjectName} SHARED ${SPRend2Files})
if(NOT MSVC)
# remove "lib" prefix for .so/.dylib files
set_target_properties(${ProjectName} PROPERTIES PREFIX "")
endif()

if(WIN32)
install(TARGETS ${ProjectName}
RUNTIME
DESTINATION ${InstallDir}
COMPONENT ${Component})
else(WIN32)
if(MakeApplicationBundles AND (BuildSPEngine OR BuildJK2SPEngine))
install(TARGETS ${ProjectName}
LIBRARY
DESTINATION "${InstallDir}/${EngineName}.app/Contents/MacOS/"
COMPONENT ${Component})
else()
install(TARGETS ${ProjectName}
LIBRARY
DESTINATION ${InstallDir}
COMPONENT ${Component})
endif()
endif()

set_target_properties(${ProjectName} PROPERTIES COMPILE_DEFINITIONS "${SPRend2Defines}")

# Hide symbols not explicitly marked public.
set_property(TARGET ${ProjectName} APPEND PROPERTY COMPILE_OPTIONS ${OPENJK_VISIBILITY_FLAGS})

set_target_properties(${ProjectName} PROPERTIES INCLUDE_DIRECTORIES "${SPRend2IncludeDirectories}")
set_target_properties(${ProjectName} PROPERTIES PROJECT_LABEL ${Label})

target_link_libraries(${ProjectName} ${SPRend2Libraries})
target_include_directories(${ProjectName} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
endfunction(add_sp_renderer_project)

# Defines
set(SPRend2Defines ${SharedDefines} "RENDERER" "REND2_SP" "REND2_SP_GORE")

if(BuildSPRend2)
add_sp_renderer_project(${SPRend2} "SP Rend2 Renderer" ${SPEngine} ${JKAInstallDir} ${JKASPClientComponent})
endif(BuildSPRend2)
if(BuildJK2SPRdRend2)
set(SPRend2Defines ${SPRend2Defines} "JK2_MODE")
add_sp_renderer_project(${JK2SPRend2Renderer} "JK2 SP Rend2 Renderer" ${JK2SPEngine} ${JK2InstallDir} ${JK2SPClientComponent})
endif(BuildJK2SPRdRend2)

# GLSL shader file generator
add_executable(compact_glsl_sp
${SharedDir}/rd-rend2/glsl/compact.cpp
${SharedDir}/rd-rend2/tr_allocator.cpp
${SharedDir}/rd-rend2/tr_allocator.h
${SharedDir}/rd-rend2/tr_glsl_parse.cpp)
target_compile_definitions(compact_glsl_sp PRIVATE "GLSL_BUILDTOOL" "NOMINMAX" "REND2_SP")
if (NOT WIN32 AND NOT APPLE)
target_compile_definitions(compact_glsl_sp PRIVATE "ARCH_STRING=\"${Architecture}\"")
endif()
target_include_directories(compact_glsl_sp PRIVATE "${SPRend2IncludeDirectories}")
if (WIN32 OR APPLE)
add_custom_command(
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
COMMAND
compact_glsl_sp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
${SPRend2GLSLFiles}
DEPENDS
compact_glsl_sp ${SPRend2GLSLFiles})
else()
add_custom_command(
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
COMMAND
${CMAKE_BINARY_DIR}/compact_glsl_sp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.cpp
${CMAKE_CURRENT_BINARY_DIR}/glsl_shaders.h
${SPRend2GLSLFiles}
DEPENDS
compact_glsl_sp ${SPRend2GLSLFiles})
endif()
Loading