99 lines
2.5 KiB
C
99 lines
2.5 KiB
C
// This header contains necessary structures for setting up correct screen modes,
|
|
// pixel formats, audio formats, and so on.
|
|
|
|
// minify windows.h
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#define WIN32_EXTRA_LEAN
|
|
#define VC_LEANMEAN
|
|
#define VC_EXTRALEAN
|
|
|
|
#pragma pack(push, 8)
|
|
#include <windows.h>
|
|
#pragma pack(pop)
|
|
|
|
#include <GL/gl.h>
|
|
|
|
// global resolution
|
|
#define XRES 1920
|
|
#define YRES 1080
|
|
|
|
// declare this symbol if your code uses floating point types
|
|
// extern "C" int _fltused;
|
|
|
|
#pragma data_seg(".pixelfmt")
|
|
static const PIXELFORMATDESCRIPTOR pfd = {
|
|
#if BREAK_COMPATIBILITY
|
|
#if POST_PASS
|
|
0, 0, PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,
|
|
0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0
|
|
#else
|
|
0, 0, PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0
|
|
#endif
|
|
#else
|
|
sizeof(pfd), 1, PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,
|
|
32, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 32, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0
|
|
#endif
|
|
};
|
|
|
|
#pragma data_seg(".screensettings")
|
|
static DEVMODE screenSettings = {
|
|
{0}, 0, 0, sizeof(screenSettings), 0, DM_PELSWIDTH|DM_PELSHEIGHT,
|
|
{0}, 0, 0, 0, 0, 0, {0}, 0, 0, XRES, YRES, 0, 0,
|
|
#if(WINVER >= 0x0400)
|
|
0, 0, 0, 0, 0, 0,
|
|
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
|
|
0, 0
|
|
#endif
|
|
#endif
|
|
};
|
|
|
|
#if USE_AUDIO
|
|
// this file is auto generated by sointu
|
|
#include "sointu/song.h"
|
|
#ifndef DSBCAPS_TRUEPLAYPOSITION // Not defined in MinGW dsound headers, so let's add it
|
|
#define DSBCAPS_TRUEPLAYPOSITION 0x00080000
|
|
#endif
|
|
#include <mmreg.h>
|
|
#include <dsound.h>
|
|
|
|
|
|
SUsample sound_buffer[SU_LENGTH_IN_SAMPLES * SU_CHANNEL_COUNT];
|
|
WAVEFORMATEX wave_format = {
|
|
#ifdef SU_SAMPLE_FLOAT
|
|
WAVE_FORMAT_IEEE_FLOAT,
|
|
#else
|
|
WAVE_FORMAT_PCM,
|
|
#endif
|
|
SU_CHANNEL_COUNT,
|
|
SU_SAMPLE_RATE,
|
|
SU_SAMPLE_RATE * SU_SAMPLE_SIZE * SU_CHANNEL_COUNT,
|
|
SU_SAMPLE_SIZE * SU_CHANNEL_COUNT,
|
|
SU_SAMPLE_SIZE * 8,
|
|
0
|
|
};
|
|
#pragma data_seg(".descfmt")
|
|
DSBUFFERDESC buffer_description = {
|
|
sizeof(DSBUFFERDESC),
|
|
DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS | DSBCAPS_TRUEPLAYPOSITION,
|
|
SU_LENGTH_IN_SAMPLES * SU_SAMPLE_SIZE * SU_CHANNEL_COUNT,
|
|
0,
|
|
&wave_format,
|
|
0
|
|
};
|
|
|
|
#pragma bss_seg(".syncbuf")
|
|
extern "C" {
|
|
int _fltused = 1;
|
|
float syncBuf[SU_SYNCBUFFER_LENGTH+1];
|
|
}
|
|
#endif
|
|
|
|
// currently unused definitions
|
|
#ifdef EDITOR_CONTROLS
|
|
#define FAIL_KILL false
|
|
#define PID_QUALIFIER
|
|
#else
|
|
#define FAIL_KILL true
|
|
#define PID_QUALIFIER const
|
|
#endif |