Merge branch 'ClassiCube:master' into switch

This commit is contained in:
Headshotnoby 2024-03-14 22:12:48 -04:00 committed by GitHub
commit e1d830064c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 1 deletions

View File

@ -178,6 +178,8 @@ static cc_bool AudioBackend_Init(void) {
return true; return true;
} }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { static void AudioBackend_Free(void) {
if (!audio_device) return; if (!audio_device) return;
_alcMakeContextCurrent(NULL); _alcMakeContextCurrent(NULL);
@ -399,7 +401,9 @@ struct AudioContext {
int count, channels, sampleRate; int count, channels, sampleRate;
cc_uint32 _tmpSize; void* _tmpData; cc_uint32 _tmpSize; void* _tmpData;
}; };
static cc_bool AudioBackend_Init(void) { return true; } static cc_bool AudioBackend_Init(void) { return true; }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { } static void AudioBackend_Free(void) { }
#define AUDIO_HAS_BACKEND #define AUDIO_HAS_BACKEND
@ -609,6 +613,8 @@ static cc_bool AudioBackend_Init(void) {
return true; return true;
} }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { static void AudioBackend_Free(void) {
if (slOutputObject) { if (slOutputObject) {
(*slOutputObject)->Destroy(slOutputObject); (*slOutputObject)->Destroy(slOutputObject);
@ -794,6 +800,9 @@ static cc_bool AudioBackend_Init(void) {
ndspSetOutputMode(NDSP_OUTPUT_STEREO); ndspSetOutputMode(NDSP_OUTPUT_STEREO);
return result == 0; return result == 0;
} }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { } static void AudioBackend_Free(void) { }
#define AUDIO_HAS_BACKEND #define AUDIO_HAS_BACKEND
@ -1183,6 +1192,8 @@ static cc_bool AudioBackend_Init(void) {
return snd_stream_init() == 0; return snd_stream_init() == 0;
} }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { static void AudioBackend_Free(void) {
snd_stream_shutdown(); snd_stream_shutdown();
} }
@ -1321,6 +1332,10 @@ static cc_bool AudioBackend_Init(void) {
return true; return true;
} }
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { }
void Audio_Init(struct AudioContext* ctx, int buffers) { } void Audio_Init(struct AudioContext* ctx, int buffers) { }
void Audio_Close(struct AudioContext* ctx) { void Audio_Close(struct AudioContext* ctx) {
if (ctx->contextID) interop_AudioClose(ctx->contextID); if (ctx->contextID) interop_AudioClose(ctx->contextID);
@ -1368,13 +1383,19 @@ void Audio_AllocChunks(cc_uint32 size, void** chunks, int numChunks) {
void Audio_FreeChunks(void** chunks, int numChunks) { void Audio_FreeChunks(void** chunks, int numChunks) {
AudioBase_FreeChunks(chunks, numChunks); AudioBase_FreeChunks(chunks, numChunks);
} }
#else
/*########################################################################################################################*
*----------------------------------------------------Null/Empty backend---------------------------------------------------*
*#########################################################################################################################*/
void AudioBackend_Tick(void) { }
static void AudioBackend_Free(void) { }
#endif #endif
/*########################################################################################################################* /*########################################################################################################################*
*---------------------------------------------------Common backend code---------------------------------------------------* *---------------------------------------------------Common backend code---------------------------------------------------*
*#########################################################################################################################*/ *#########################################################################################################################*/
#ifndef AUDIO_HAS_BACKEND #ifndef AUDIO_HAS_BACKEND
static void AudioBackend_Free(void) { }
#else #else
static void AudioBase_Clear(struct AudioContext* ctx) { static void AudioBase_Clear(struct AudioContext* ctx) {
ctx->count = 0; ctx->count = 0;

View File

@ -41,6 +41,8 @@ void Audio_PlayDigSound(cc_uint8 type);
void Audio_PlayStepSound(cc_uint8 type); void Audio_PlayStepSound(cc_uint8 type);
#define AUDIO_MAX_BUFFERS 4 #define AUDIO_MAX_BUFFERS 4
void AudioBackend_Tick(void);
/* Initialises an audio context. */ /* Initialises an audio context. */
void Audio_Init(struct AudioContext* ctx, int buffers); void Audio_Init(struct AudioContext* ctx, int buffers);
/* Stops any playing audio and then frees the audio context. */ /* Stops any playing audio and then frees the audio context. */

View File

@ -621,6 +621,7 @@ static void Game_RenderFrame(double delta) {
/* NOTE: EnvRenderer_UpdateFog also also sets clear color */ /* NOTE: EnvRenderer_UpdateFog also also sets clear color */
EnvRenderer_UpdateFog(); EnvRenderer_UpdateFog();
UpdateViewMatrix(); UpdateViewMatrix();
AudioBackend_Tick();
/* TODO: Not calling Gfx_EndFrame doesn't work with Direct3D9 */ /* TODO: Not calling Gfx_EndFrame doesn't work with Direct3D9 */
if (Window_Main.Inactive) return; if (Window_Main.Inactive) return;