Tessellate terrain and light-map surfaces for vertex-fog drivers, render animated water from the tiled mesh, request accurate fog and extend renderer diagnostics. Add canal-front buildings, raised quays, trees and benches while preserving the terrace and native runtime. Update native regression coverage and shipping executables. Exclude laptop screenshots and local runtime data.
186 lines
6.5 KiB
PHP
186 lines
6.5 KiB
PHP
include src_graphics\rooftop_gl_api.inc
|
|
ROOF_HD_W equ 1280
|
|
ROOF_HD_H equ 960
|
|
ROOF_GL_TEXTURES equ 49
|
|
ROOF_GL_LIST_COUNT equ 10
|
|
ROOF_GL_WATER_LIST equ 9
|
|
InitRoofHD3D PROTO
|
|
FreeRoofHD3D PROTO
|
|
RenderRoofHD3D PROTO
|
|
PresentRoofHD3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
|
|
LoadRoofMesh3D PROTO :DWORD,:DWORD
|
|
FreeRoofMesh3D PROTO :DWORD
|
|
RoofGLProc3D PROTO :DWORD,:DWORD
|
|
UploadRoofGLTexture3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
BuildRoofGLList3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
DrawRoofGLSky3D PROTO
|
|
DrawRoofGLTraffic3D PROTO
|
|
DrawRoofGLWater3D PROTO
|
|
UploadRoofGLSky3D PROTO :DWORD,:DWORD
|
|
UpdateRoofGLFog3D PROTO
|
|
UpdateRoofQuality3D PROTO
|
|
ComposeRoofFrame3D PROTO
|
|
RenderRoofQualityToast3D PROTO
|
|
WriteRoofRendererInfo3D PROTO
|
|
WriteRoofLogString3D PROTO :DWORD,:DWORD
|
|
.data
|
|
roofHDReady3D dd 0
|
|
roofHDStage3D dd 0
|
|
roofHDWindow3D dd 0
|
|
roofHDDC3D dd 0
|
|
roofHDRC3D dd 0
|
|
roofHDModule3D dd 0
|
|
roofHDBuffer3D dd 0
|
|
roofHDFBO3D dd 0
|
|
roofHDColorTex3D dd 0
|
|
roofHDDepth3D dd 0
|
|
roofHDLists3D dd 0
|
|
roofGLFogHint3D dd 1102h
|
|
roofHDSkyTextures3D dd 2 dup(0)
|
|
roofHDDayTextures3D dd ROOF_GL_TEXTURES dup(0)
|
|
roofHDNightTextures3D dd ROOF_GL_TEXTURES dup(0)
|
|
roofHDEmissionTextures3D dd ROOF_GL_TEXTURES dup(0)
|
|
roofHDMeshScene3D dd 4 dup(0)
|
|
roofHDMeshCar3D dd 4 dup(0)
|
|
roofHDMeshBoat3D dd 4 dup(0)
|
|
roofHDScenePath3D db "assets\animations\rooftop\mesh-city-v1.bin",0
|
|
roofHDCarPath3D db "assets\animations\rooftop\mesh-car-v1.bin",0
|
|
roofHDBoatPath3D db "assets\animations\rooftop\mesh-boat-v1.bin",0
|
|
roofHDMeshPtrs3D dd OFFSET roofHDMeshScene3D,OFFSET roofHDMeshCar3D,OFFSET roofHDMeshBoat3D
|
|
roofHDClassName3D db "AssemblerCasinoRoofOffscreen",0
|
|
roofHDTitle3D db "Roof offscreen renderer",0
|
|
roofHDClass3D dd 20h,OFFSET DefWindowProcA,0,0,0,0,0,0,0,OFFSET roofHDClassName3D
|
|
; PIXELFORMATDESCRIPTOR: RGBA32, depth24, draw-to-window/OpenGL/double-buffer.
|
|
roofHDPixelFormat3D dw 40,1
|
|
dd 25h
|
|
db 0,32,0,0,0,0,0,0,8,0,0,0,0,0,0,24,8,0,0,0
|
|
dd 0,0,0
|
|
roofHDOverlayDC3D dd 0
|
|
roofHDOverlayBmp3D dd 0
|
|
roofHDOverlayOld3D dd 0
|
|
roofHDFinalDC3D dd 0
|
|
roofHDFinalBmp3D dd 0
|
|
roofHDFinalOld3D dd 0
|
|
roofHDFinalPixels3D dd 0
|
|
roofHDOverlayPixels3D dd 0
|
|
roofHDOverlayBMI3D dd 40,640,-480
|
|
dw 1,32
|
|
dd 0,640*480*4,0,0,0,0
|
|
roofHDBMI3D dd 40,ROOF_HD_W,ROOF_HD_H
|
|
dw 1,32
|
|
dd 0,ROOF_HD_W*ROOF_HD_H*4,0,0,0,0
|
|
roofGLGenFBO3D dd 0
|
|
roofGLBindFBO3D dd 0
|
|
roofGLAttachTexture3D dd 0
|
|
roofGLCheckFBO3D dd 0
|
|
roofGLDeleteFBO3D dd 0
|
|
roofGLGenRBO3D dd 0
|
|
roofGLBindRBO3D dd 0
|
|
roofGLStoreRBO3D dd 0
|
|
roofGLAttachRBO3D dd 0
|
|
roofGLDeleteRBO3D dd 0
|
|
roofGLMipmap3D dd 0
|
|
roofGLProcSlots3D dd OFFSET roofGLGenFBO3D,OFFSET roofGLBindFBO3D,OFFSET roofGLAttachTexture3D
|
|
dd OFFSET roofGLCheckFBO3D,OFFSET roofGLDeleteFBO3D,OFFSET roofGLGenRBO3D
|
|
dd OFFSET roofGLBindRBO3D,OFFSET roofGLStoreRBO3D,OFFSET roofGLAttachRBO3D
|
|
dd OFFSET roofGLDeleteRBO3D,OFFSET roofGLMipmap3D
|
|
roofGLProcNames3D dd OFFSET roofGLName0,OFFSET roofGLName1,OFFSET roofGLName2,OFFSET roofGLName3
|
|
dd OFFSET roofGLName4,OFFSET roofGLName5,OFFSET roofGLName6,OFFSET roofGLName7
|
|
dd OFFSET roofGLName8,OFFSET roofGLName9,OFFSET roofGLName10
|
|
roofGLProcExtNames3D dd OFFSET roofGLExt0,OFFSET roofGLExt1,OFFSET roofGLExt2,OFFSET roofGLExt3
|
|
dd OFFSET roofGLExt4,OFFSET roofGLExt5,OFFSET roofGLExt6,OFFSET roofGLExt7
|
|
dd OFFSET roofGLExt8,OFFSET roofGLExt9,OFFSET roofGLExt10
|
|
roofGLName0 db "glGenFramebuffers",0
|
|
roofGLName1 db "glBindFramebuffer",0
|
|
roofGLName2 db "glFramebufferTexture2D",0
|
|
roofGLName3 db "glCheckFramebufferStatus",0
|
|
roofGLName4 db "glDeleteFramebuffers",0
|
|
roofGLName5 db "glGenRenderbuffers",0
|
|
roofGLName6 db "glBindRenderbuffer",0
|
|
roofGLName7 db "glRenderbufferStorage",0
|
|
roofGLName8 db "glFramebufferRenderbuffer",0
|
|
roofGLName9 db "glDeleteRenderbuffers",0
|
|
roofGLName10 db "glGenerateMipmap",0
|
|
roofGLExt0 db "glGenFramebuffersEXT",0
|
|
roofGLExt1 db "glBindFramebufferEXT",0
|
|
roofGLExt2 db "glFramebufferTexture2DEXT",0
|
|
roofGLExt3 db "glCheckFramebufferStatusEXT",0
|
|
roofGLExt4 db "glDeleteFramebuffersEXT",0
|
|
roofGLExt5 db "glGenRenderbuffersEXT",0
|
|
roofGLExt6 db "glBindRenderbufferEXT",0
|
|
roofGLExt7 db "glRenderbufferStorageEXT",0
|
|
roofGLExt8 db "glFramebufferRenderbufferEXT",0
|
|
roofGLExt9 db "glDeleteRenderbuffersEXT",0
|
|
roofGLExt10 db "glGenerateMipmapEXT",0
|
|
roofGLFogDay3D REAL4 0.67,0.61,0.69,1.0
|
|
roofGLFogNight3D REAL4 0.05,0.09,0.17,1.0
|
|
roofGLFogCurrent3D REAL4 0.67,0.61,0.69,1.0
|
|
roofGLFogWhite3D REAL4 1.0,1.0,1.0,1.0
|
|
roofGLFogBlack3D REAL4 0.0,0.0,0.0,1.0
|
|
roofGLColorScale3D REAL4 255.0
|
|
roofGLWaveDiv3D REAL4 100000.0
|
|
roofGLHalf3D REAL4 0.5
|
|
roofGLAmbientDay3D REAL4 0.43,0.43,0.48,1.0
|
|
roofGLAmbientNight3D REAL4 0.20,0.23,0.32,1.0
|
|
roofGLSunColorDay3D REAL4 0.75,0.57,0.39,1.0
|
|
roofGLSunColorNight3D REAL4 0.12,0.15,0.25,1.0
|
|
roofGLSunDirection3D REAL4 -0.8,0.8,0.4,0.0
|
|
roofGLEmissionZero3D REAL4 0.0,0.0,0.0,1.0
|
|
roofGLEmissionGold3D REAL4 0.42,0.28,0.08,1.0
|
|
roofGLEmissionLamp3D REAL4 0.9,0.67,0.3,1.0
|
|
roofGLInvFP3D REAL4 0.0000152587890625
|
|
roofGLDegrees3D REAL4 0.703125
|
|
roofGLNinety3D REAL4 90.0
|
|
roofGLHalfWidth3D REAL8 0.66
|
|
roofGLLeft3D REAL8 -0.66
|
|
roofGLRight3D REAL8 0.66
|
|
roofGLNear3D REAL8 1.0
|
|
roofGLFar3D REAL8 2048.0
|
|
roofGLZeroD3D REAL8 0.0
|
|
roofGLOneD3D REAL8 1.0
|
|
roofGLMinusOneD3D REAL8 -1.0
|
|
roofGLScreenWidthD3D REAL8 1280.0
|
|
roofGLScreenHeightD3D REAL8 960.0
|
|
roofGLCameraH3D dd 480
|
|
roofHDRenderX3D dd -1
|
|
roofHDRenderY3D dd -1
|
|
roofHDRenderAngle3D dd -1
|
|
roofHDRenderEye3D dd -1
|
|
roofHDRenderHorizon3D dd -1
|
|
roofHDRenderTheme3D dd -1
|
|
roofHDRenderClock3D dd -1
|
|
roofRenderW3D dd 960
|
|
roofRenderH3D dd 720
|
|
roofQualityMode3D dd 0
|
|
roofAutoWidth3D dd 960
|
|
roofQualityMapW3D dd 0
|
|
roofQualityClock3D dd -1
|
|
roofQualitySlow3D dd 0
|
|
roofQualityToast3D dd 0
|
|
roofQualityAutoText3D db 202,208,219,216,192,58,32,192,194,210,206,0
|
|
roofQualityEcoText3D db 202,208,219,216,192,58,32,221,202,206,0
|
|
roofQualityHighText3D db 202,208,219,216,192,58,32,196,197,210,192,203,200,0
|
|
roofLogPath3D db "runtime\roof-renderer.txt",0
|
|
roofLogHeader3D db "Native MASM rooftop renderer",13,10,0
|
|
roofLogTerrain3D db "Terrain path: tiled ground and animated mesh water v2",13,10,0
|
|
roofLogTriangles3D db "City mesh triangles: ",0
|
|
roofLogVendor3D db "Vendor: ",0
|
|
roofLogRenderer3D db "Renderer: ",0
|
|
roofLogVersion3D db "OpenGL: ",0
|
|
roofLogStage3D db "Init stage (0=ready): ",0
|
|
roofLogAssets3D db "City texture pack present: ",0
|
|
roofLogWidth3D db "Render width: ",0
|
|
roofLogSmall3D db "640",0
|
|
roofLogMedium3D db "960",0
|
|
roofLogLarge3D db "1280",0
|
|
roofLogUnknown3D db "unavailable",0
|
|
roofLogNL3D db 13,10,0
|
|
roofLogDigit3D db "0",0
|
|
.data?
|
|
roofHDBackdrop3D dd SCREEN_SIZE dup(?)
|
|
roofHDUsedMaterials3D db ROOF_GL_TEXTURES dup(?)
|
|
roofQualityX3D dd SCREEN_W dup(?)
|
|
roofQualityXCount3D dd SCREEN_W dup(?)
|
|
roofQualityY3D dd SCREEN_H dup(?)
|
|
roofQualityYCount3D dd SCREEN_H dup(?)
|
|
.code
|