mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-14 18:15:28 -04:00
PSP: Use cooperative threading for map gen
Also fix OpenAL backend not properly resetting error state before calling important functions that may set the error state
This commit is contained in:
parent
7d881ad452
commit
2634c0bb12
@ -219,7 +219,7 @@ void Audio_Close(struct AudioContext* ctx) {
|
|||||||
if (ctx->source) {
|
if (ctx->source) {
|
||||||
Audio_Stop(ctx);
|
Audio_Stop(ctx);
|
||||||
Audio_Reset(ctx);
|
Audio_Reset(ctx);
|
||||||
_alGetError();
|
_alGetError(); /* Reset error state */
|
||||||
}
|
}
|
||||||
ClearFree(ctx);
|
ClearFree(ctx);
|
||||||
AudioBase_Clear(ctx);
|
AudioBase_Clear(ctx);
|
||||||
@ -228,6 +228,7 @@ void Audio_Close(struct AudioContext* ctx) {
|
|||||||
cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate) {
|
cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate) {
|
||||||
ALenum i, err;
|
ALenum i, err;
|
||||||
if (!ctx->source) {
|
if (!ctx->source) {
|
||||||
|
_alGetError(); /* Reset error state */
|
||||||
_alGenSources(1, &ctx->source);
|
_alGenSources(1, &ctx->source);
|
||||||
if ((err = _alGetError())) return err;
|
if ((err = _alGetError())) return err;
|
||||||
|
|
||||||
@ -257,6 +258,7 @@ cc_result Audio_QueueChunk(struct AudioContext* ctx, void* chunk, cc_uint32 size
|
|||||||
|
|
||||||
if (!ctx->free) return ERR_INVALID_ARGUMENT;
|
if (!ctx->free) return ERR_INVALID_ARGUMENT;
|
||||||
buffer = ctx->freeIDs[--ctx->free];
|
buffer = ctx->freeIDs[--ctx->free];
|
||||||
|
_alGetError(); /* Reset error state */
|
||||||
|
|
||||||
_alBufferData(buffer, ctx->channels, chunk, size, ctx->sampleRate);
|
_alBufferData(buffer, ctx->channels, chunk, size, ctx->sampleRate);
|
||||||
if ((err = _alGetError())) return err;
|
if ((err = _alGetError())) return err;
|
||||||
@ -278,6 +280,7 @@ cc_result Audio_Poll(struct AudioContext* ctx, int* inUse) {
|
|||||||
*inUse = 0;
|
*inUse = 0;
|
||||||
if (!ctx->source) return 0;
|
if (!ctx->source) return 0;
|
||||||
|
|
||||||
|
_alGetError(); /* Reset error state */
|
||||||
_alGetSourcei(ctx->source, AL_BUFFERS_PROCESSED, &processed);
|
_alGetSourcei(ctx->source, AL_BUFFERS_PROCESSED, &processed);
|
||||||
if ((err = _alGetError())) return err;
|
if ((err = _alGetError())) return err;
|
||||||
|
|
||||||
|
@ -276,6 +276,7 @@ typedef cc_uint8 cc_bool;
|
|||||||
#define CC_BUILD_PSP
|
#define CC_BUILD_PSP
|
||||||
#define CC_BUILD_OPENAL
|
#define CC_BUILD_OPENAL
|
||||||
#define CC_BUILD_HTTPCLIENT
|
#define CC_BUILD_HTTPCLIENT
|
||||||
|
#define CC_BUILD_COOPTHREADED
|
||||||
#define CC_BUILD_BEARSSL
|
#define CC_BUILD_BEARSSL
|
||||||
#define CC_BUILD_LOWMEM
|
#define CC_BUILD_LOWMEM
|
||||||
#define CC_BUILD_CONSOLE
|
#define CC_BUILD_CONSOLE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user