port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

295
ev4k/release.cpp Normal file
View File

@@ -0,0 +1,295 @@
#ifndef _DEBUG
#define WINDOWED
//#define NOMUSICTIMING
#define WIN32_LEAN_AND_MEAN
#define WIN32_EXTRA_LEAN
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "glext.h"
#include "small.h"
#include "synth.h"
#ifndef ASPECT
#define ASPECT 1.78
#endif
#ifndef SCREENWIDTH
#define SCREENWIDTH 640
#endif
#ifndef SCREENHEIGTH
#define SCREENHEIGTH 360
#endif
#define STR2(x) #x
#define STR(x) STR2(x)
#pragma data_seg(".Shader0")
#include "mark_0.h"
#pragma data_seg(".Shader1")
#include "mark_1.h"
#pragma data_seg(".Shader2")
#include "mark_2.h"
#pragma data_seg(".Shader3")
#include "mark_3.h"
#pragma data_seg(".vertexshader")
static char* vsh = "varying vec4 Y,Z;void main(){Y=gl_Color;Z=gl_Vertex*vec4("STR( ASPECT )",1,1,1)*.5+.5;gl_Position=gl_Vertex;}";
#pragma data_seg(".pfd")
static const PIXELFORMATDESCRIPTOR pfd={
0, 1, PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 8
};
#pragma data_seg(".dms")
static DEVMODE dmScreenSettings={
"",0,0,sizeof(dmScreenSettings),0,DM_PELSWIDTH|DM_PELSHEIGHT,
0,0,0,0,0,0,0,0,0,0,0,0,0,"",0,0,SCREENWIDTH,SCREENHEIGTH
};
#pragma data_seg(".strings")
static const char* glCreateProgram = "glCreateProgram";
#pragma data_seg(".strings9")
static const char* glCreateShader = "glCreateShader";
#pragma data_seg(".strings8")
static const char* glShaderSource = "glShaderSource";
#pragma data_seg(".strings7")
static const char* glCompileShader = "glCompileShader";
#pragma data_seg(".strings6")
static const char* glAttachShader = "glAttachShader";
#pragma data_seg(".strings5")
static const char* glLinkProgram = "glLinkProgram";
#pragma data_seg(".strings4")
static const char* glUseProgram = "glUseProgram";
#pragma data_seg(".strings3")
static const char* stredit = "edit";
#pragma data_seg(".strings2")
static const char* strstatic = "static";
#pragma data_seg(".strings1")
static const char* strRED = "RED";
#pragma code_seg(".compile")
unsigned int compileShader(const char* vsh, const char* fsh)
{
_asm
{
xor edi, edi
push glCreateProgram
call dword ptr [wglGetProcAddress]
call eax
mov esi, eax
lea ebx,[vsh]
push GL_VERTEX_SHADER
push glCreateShader
call dword ptr [wglGetProcAddress]
call eax
push eax
push esi
push glAttachShader
push eax
push glCompileShader
push edi
push ebx
push 1
push eax
push glShaderSource
call dword ptr [wglGetProcAddress]
call eax
call dword ptr [wglGetProcAddress]
call eax
call dword ptr [wglGetProcAddress]
call eax
lea ebx,[fsh]
push GL_FRAGMENT_SHADER
push glCreateShader
call dword ptr [wglGetProcAddress]
call eax
push eax
push esi
push glAttachShader
push eax
push glCompileShader
push edi
push ebx
push 1
push eax
push glShaderSource
call dword ptr [wglGetProcAddress]
call eax
call dword ptr [wglGetProcAddress]
call eax
call dword ptr [wglGetProcAddress]
call eax
push esi
push glLinkProgram
call dword ptr [wglGetProcAddress]
call eax
mov eax, esi
}
}
#pragma bss_seg(".introbss")
static unsigned char gCurScene;
static int gCurSceneStart;
static unsigned int shaders[4];
#pragma data_seg(".g_SceneLength")
unsigned char g_SceneLength[]=
{
16, 8, 8, 32,
16, 16, 32,
16, 16, 32,
16, 16, 16, 32,
0
};
#pragma data_seg(".g_SceneShader")
unsigned char g_SceneShader[]=
{
0,0,0,0,
1,1,1,
2,2,2,
3,3,3,3
};
#pragma data_seg(".g_SceneFactor")
float g_SceneFactor[]=
{
0, 0, 0, 1.0f,
0, 0, 1.0f,
0, 0, 1.0f,
0, 1.0f, 1.0f, 2.0f
};
#pragma code_seg(".main")
void _cdecl main()
{
_asm
{
xor edi, edi
}
HDC hDC;
#ifndef WINDOWED
_asm
{
push CDS_FULLSCREEN
push offset dmScreenSettings
call dword ptr [ChangeDisplaySettingsA]
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push WS_POPUP | WS_VISIBLE | WS_MAXIMIZE
push edi
push stredit
push edi
call dword ptr [CreateWindowExA]
push eax
call dword ptr [GetDC]
mov dword ptr [hDC],eax
}
#else
_asm
{
push edi
push edi
push edi
push edi
push SCREENHEIGTH
push SCREENWIDTH
push edi
push edi
push WS_EX_APPWINDOW | WS_VISIBLE | WS_SYSMENU
push strRED
push strstatic
push edi
call dword ptr [CreateWindowExA]
push eax
call dword ptr [GetDC]
mov dword ptr [hDC],eax
}
#endif
_asm
{
push offset pfd
push offset pfd
push dword ptr [hDC]
call dword ptr [ChoosePixelFormat]
push eax
push dword ptr [hDC]
call dword ptr [SetPixelFormat]
push dword ptr [hDC]
call dword ptr [wglCreateContext]
push eax
push dword ptr [hDC]
call dword ptr [wglMakeCurrent]
}
_asm
{
push mark_h_1
push vsh
push mark_h_2
push vsh
push mark_h_3
push vsh
push mark_h_0
push vsh
call dword ptr [compileShader]
mov dword ptr shaders[0],eax
call dword ptr [compileShader]
mov dword ptr shaders[4],eax
call dword ptr [compileShader]
mov dword ptr shaders[8],eax
call dword ptr [compileShader]
mov dword ptr shaders[12],eax
}
_asm
{
push edi
call dword ptr [ShowCursor]
call dword ptr [InitSound]
}
float lf_Time= 0.0f;
do
{
int Sample= get_Sample() - gCurSceneStart;
int SceneEnd= g_SceneLength[ gCurScene ] * (44100 * 60 / 145);//samples per tick
((PFNGLUSEPROGRAMPROC)wglGetProcAddress(glUseProgram))(shaders[ g_SceneShader[ gCurScene ] ]);
lf_Time = (float)Sample / (float)SceneEnd;
glColor3f((float)gCurScene, lf_Time, lf_Time * lf_Time * g_SceneFactor[ gCurScene ]);
glRects(-1, -1, 1, 1);
SwapBuffers(hDC);
if (Sample > SceneEnd)
{
gCurSceneStart+= SceneEnd;
gCurScene++;
}
}
while (g_SceneLength[gCurScene] > 0 && !GetAsyncKeyState(VK_ESCAPE));
ExitProcess(0);
}
#endif