mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
Updated SDL, Bullet and OpenAL soft libs
Fixed case sensitivity problem Fixed clang compiler problem with having the class namespace used in an inline for the == operator Tweaked some theme stuff to be more consistent. Added initial test of no-pie for linux test sidestep of getTexCoord in shadergen hlsl feature so we don't assert when getting the terrain's shaderstuffs(which uses float3 instead of normal float2)
This commit is contained in:
parent
e87dc787ee
commit
f8750dd8ed
1102 changed files with 205083 additions and 62836 deletions
|
|
@ -55,6 +55,7 @@ TARGETS = \
|
|||
testrumble$(EXE) \
|
||||
testscale$(EXE) \
|
||||
testsem$(EXE) \
|
||||
testsensor$(EXE) \
|
||||
testshader$(EXE) \
|
||||
testshape$(EXE) \
|
||||
testsprite2$(EXE) \
|
||||
|
|
@ -240,6 +241,9 @@ testscale$(EXE): $(srcdir)/testscale.c
|
|||
testsem$(EXE): $(srcdir)/testsem.c
|
||||
$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
|
||||
|
||||
testsensor$(EXE): $(srcdir)/testsensor.c
|
||||
$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
|
||||
|
||||
testshader$(EXE): $(srcdir)/testshader.c
|
||||
$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@
|
||||
|
||||
|
|
@ -313,7 +317,10 @@ distclean: clean
|
|||
%.wav: $(srcdir)/%.wav
|
||||
cp $< $@
|
||||
|
||||
copydatafiles: copybmpfiles copywavfiles
|
||||
%.dat: $(srcdir)/%.dat
|
||||
cp $< $@
|
||||
|
||||
copydatafiles: copybmpfiles copywavfiles copydatfiles
|
||||
.PHONY : copydatafiles
|
||||
|
||||
copybmpfiles: $(foreach bmp,$(wildcard $(srcdir)/*.bmp),$(notdir $(bmp)))
|
||||
|
|
@ -322,3 +329,6 @@ copybmpfiles: $(foreach bmp,$(wildcard $(srcdir)/*.bmp),$(notdir $(bmp)))
|
|||
copywavfiles: $(foreach wav,$(wildcard $(srcdir)/*.wav),$(notdir $(wav)))
|
||||
.PHONY : copywavfiles
|
||||
|
||||
copydatfiles: $(foreach dat,$(wildcard $(srcdir)/*.dat),$(notdir $(dat)))
|
||||
.PHONY : copydatfiles
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,24 @@ init_color_cursor(const char *file)
|
|||
SDL_Cursor *cursor = NULL;
|
||||
SDL_Surface *surface = SDL_LoadBMP(file);
|
||||
if (surface) {
|
||||
if (surface->format->palette) {
|
||||
SDL_SetColorKey(surface, 1, *(Uint8 *) surface->pixels);
|
||||
} else {
|
||||
switch (surface->format->BitsPerPixel) {
|
||||
case 15:
|
||||
SDL_SetColorKey(surface, 1, (*(Uint16 *)surface->pixels) & 0x00007FFF);
|
||||
break;
|
||||
case 16:
|
||||
SDL_SetColorKey(surface, 1, *(Uint16 *)surface->pixels);
|
||||
break;
|
||||
case 24:
|
||||
SDL_SetColorKey(surface, 1, (*(Uint32 *)surface->pixels) & 0x00FFFFFF);
|
||||
break;
|
||||
case 32:
|
||||
SDL_SetColorKey(surface, 1, *(Uint32 *)surface->pixels);
|
||||
break;
|
||||
}
|
||||
}
|
||||
cursor = SDL_CreateColorCursor(surface, 0, 0);
|
||||
SDL_FreeSurface(surface);
|
||||
}
|
||||
|
|
@ -116,7 +134,9 @@ init_system_cursor(const char *image[])
|
|||
|
||||
static SDLTest_CommonState *state;
|
||||
int done;
|
||||
SDL_Cursor *cursor = NULL;
|
||||
static SDL_Cursor *cursors[1+SDL_NUM_SYSTEM_CURSORS];
|
||||
static int current_cursor;
|
||||
static int show_cursor;
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
|
|
@ -134,6 +154,18 @@ loop()
|
|||
/* Check for events */
|
||||
while (SDL_PollEvent(&event)) {
|
||||
SDLTest_CommonEvent(state, &event, &done);
|
||||
if (event.type == SDL_MOUSEBUTTONDOWN) {
|
||||
if (event.button.button == SDL_BUTTON_LEFT) {
|
||||
++current_cursor;
|
||||
if (current_cursor == SDL_arraysize(cursors)) {
|
||||
current_cursor = 0;
|
||||
}
|
||||
SDL_SetCursor(cursors[current_cursor]);
|
||||
} else {
|
||||
show_cursor = !show_cursor;
|
||||
SDL_ShowCursor(show_cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
|
|
@ -188,15 +220,22 @@ main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
if (color_cursor) {
|
||||
cursor = init_color_cursor(color_cursor);
|
||||
cursors[0] = init_color_cursor(color_cursor);
|
||||
} else {
|
||||
cursor = init_system_cursor(arrow);
|
||||
cursors[0] = init_system_cursor(arrow);
|
||||
}
|
||||
if (!cursor) {
|
||||
if (!cursors[0]) {
|
||||
SDL_Log("Error, couldn't create cursor\n");
|
||||
quit(2);
|
||||
}
|
||||
SDL_SetCursor(cursor);
|
||||
for (i = 0; i < SDL_NUM_SYSTEM_CURSORS; ++i) {
|
||||
cursors[1+i] = SDL_CreateSystemCursor((SDL_SystemCursor)i);
|
||||
if (!cursors[1+i]) {
|
||||
SDL_Log("Error, couldn't create system cursor %d\n", i);
|
||||
quit(2);
|
||||
}
|
||||
}
|
||||
SDL_SetCursor(cursors[0]);
|
||||
|
||||
/* Main render loop */
|
||||
done = 0;
|
||||
|
|
@ -208,9 +247,13 @@ main(int argc, char *argv[])
|
|||
}
|
||||
#endif
|
||||
|
||||
SDL_FreeCursor(cursor);
|
||||
for (i = 0; i < SDL_arraysize(cursors); ++i) {
|
||||
SDL_FreeCursor(cursors[i]);
|
||||
}
|
||||
quit(0);
|
||||
|
||||
/* keep the compiler happy ... */
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
|||
|
|
@ -114,6 +114,11 @@ loop(void *arg)
|
|||
case SDL_CONTROLLERBUTTONDOWN:
|
||||
case SDL_CONTROLLERBUTTONUP:
|
||||
SDL_Log("Controller button %s %s\n", SDL_GameControllerGetStringForButton((SDL_GameControllerButton)event.cbutton.button), event.cbutton.state ? "pressed" : "released");
|
||||
/* First button triggers a 0.5 second full strength rumble */
|
||||
if (event.type == SDL_CONTROLLERBUTTONDOWN &&
|
||||
event.cbutton.button == SDL_CONTROLLER_BUTTON_A) {
|
||||
SDL_GameControllerRumble(gamecontroller, 0xFFFF, 0xFFFF, 500);
|
||||
}
|
||||
break;
|
||||
case SDL_KEYDOWN:
|
||||
if (event.key.keysym.sym != SDLK_ESCAPE) {
|
||||
|
|
|
|||
|
|
@ -90,6 +90,10 @@ loop(void *arg)
|
|||
case SDL_JOYBUTTONDOWN:
|
||||
SDL_Log("Joystick %d button %d down\n",
|
||||
event.jbutton.which, event.jbutton.button);
|
||||
/* First button triggers a 0.5 second full strength rumble */
|
||||
if (event.jbutton.button == 0) {
|
||||
SDL_JoystickRumble(joystick, 0xFFFF, 0xFFFF, 500);
|
||||
}
|
||||
break;
|
||||
case SDL_JOYBUTTONUP:
|
||||
SDL_Log("Joystick %d button %d up\n",
|
||||
|
|
|
|||
|
|
@ -380,6 +380,7 @@ TestCPUInfo(SDL_bool verbose)
|
|||
SDL_Log("SSE4.2 %s\n", SDL_HasSSE42()? "detected" : "not detected");
|
||||
SDL_Log("AVX %s\n", SDL_HasAVX()? "detected" : "not detected");
|
||||
SDL_Log("AVX2 %s\n", SDL_HasAVX2()? "detected" : "not detected");
|
||||
SDL_Log("AVX-512F %s\n", SDL_HasAVX512F()? "detected" : "not detected");
|
||||
SDL_Log("NEON %s\n", SDL_HasNEON()? "detected" : "not detected");
|
||||
SDL_Log("System RAM %d MB\n", SDL_GetSystemRAM());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ main(int argc, char **argv)
|
|||
SDL_WriteLE32(io, 0x45564157); /* WAVE */
|
||||
SDL_WriteLE32(io, 0x20746D66); /* fmt */
|
||||
SDL_WriteLE32(io, 16); /* chunk size */
|
||||
SDL_WriteLE16(io, 1); /* uncompressed */
|
||||
SDL_WriteLE16(io, SDL_AUDIO_ISFLOAT(spec.format) ? 3 : 1); /* uncompressed */
|
||||
SDL_WriteLE16(io, cvtchans); /* channels */
|
||||
SDL_WriteLE32(io, cvtfreq); /* sample rate */
|
||||
SDL_WriteLE32(io, avgbytes); /* average bytes per second */
|
||||
|
|
|
|||
117
Engine/lib/sdl/test/testsensor.c
Normal file
117
Engine/lib/sdl/test/testsensor.c
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Simple test of the SDL sensor code */
|
||||
|
||||
#include "SDL.h"
|
||||
|
||||
static const char *GetSensorTypeString(SDL_SensorType type)
|
||||
{
|
||||
static char unknown_type[64];
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case SDL_SENSOR_INVALID:
|
||||
return "SDL_SENSOR_INVALID";
|
||||
case SDL_SENSOR_UNKNOWN:
|
||||
return "SDL_SENSOR_UNKNOWN";
|
||||
case SDL_SENSOR_ACCEL:
|
||||
return "SDL_SENSOR_ACCEL";
|
||||
case SDL_SENSOR_GYRO:
|
||||
return "SDL_SENSOR_GYRO";
|
||||
default:
|
||||
SDL_snprintf(unknown_type, sizeof(unknown_type), "UNKNOWN (%d)", type);
|
||||
return unknown_type;
|
||||
}
|
||||
}
|
||||
|
||||
static void HandleSensorEvent(SDL_SensorEvent *event)
|
||||
{
|
||||
SDL_Sensor *sensor = SDL_SensorFromInstanceID(event->which);
|
||||
if (!sensor) {
|
||||
SDL_Log("Couldn't get sensor for sensor event\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (SDL_SensorGetType(sensor)) {
|
||||
case SDL_SENSOR_ACCEL:
|
||||
SDL_Log("Accelerometer update: %.2f, %.2f, %.2f\n", event->data[0], event->data[1], event->data[2]);
|
||||
break;
|
||||
case SDL_SENSOR_GYRO:
|
||||
SDL_Log("Gyro update: %.2f, %.2f, %.2f\n", event->data[0], event->data[1], event->data[2]);
|
||||
break;
|
||||
default:
|
||||
SDL_Log("Sensor update for sensor type %s\n", GetSensorTypeString(SDL_SensorGetType(sensor)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int num_sensors, num_opened;
|
||||
|
||||
/* Load the SDL library */
|
||||
if (SDL_Init(SDL_INIT_SENSOR) < 0) {
|
||||
SDL_Log("Couldn't initialize SDL: %s\n", SDL_GetError());
|
||||
return (1);
|
||||
}
|
||||
|
||||
num_sensors = SDL_NumSensors();
|
||||
num_opened = 0;
|
||||
|
||||
SDL_Log("There are %d sensors available\n", num_sensors);
|
||||
for (i = 0; i < num_sensors; ++i) {
|
||||
SDL_Log("Sensor %d: %s, type %s, platform type %d\n",
|
||||
SDL_SensorGetDeviceInstanceID(i),
|
||||
SDL_SensorGetDeviceName(i),
|
||||
GetSensorTypeString(SDL_SensorGetDeviceType(i)),
|
||||
SDL_SensorGetDeviceNonPortableType(i));
|
||||
|
||||
if (SDL_SensorGetDeviceType(i) != SDL_SENSOR_UNKNOWN) {
|
||||
SDL_Sensor *sensor = SDL_SensorOpen(i);
|
||||
if (sensor == NULL) {
|
||||
SDL_Log("Couldn't open sensor %d: %s\n", SDL_SensorGetDeviceInstanceID(i), SDL_GetError());
|
||||
} else {
|
||||
++num_opened;
|
||||
}
|
||||
}
|
||||
}
|
||||
SDL_Log("Opened %d sensors\n", num_opened);
|
||||
|
||||
if (num_opened > 0) {
|
||||
SDL_bool done = SDL_FALSE;
|
||||
SDL_Event event;
|
||||
|
||||
SDL_CreateWindow("Sensor Test", 0, 0, 0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP);
|
||||
while (!done) {
|
||||
while (SDL_PollEvent(&event) > 0) {
|
||||
switch (event.type) {
|
||||
case SDL_SENSORUPDATE:
|
||||
HandleSensorEvent(&event.sensor);
|
||||
break;
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
case SDL_KEYUP:
|
||||
case SDL_QUIT:
|
||||
done = SDL_TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_Quit();
|
||||
return (0);
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
static SDL_TLSID tls;
|
||||
static int alive = 0;
|
||||
static int testprio = 0;
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
|
|
@ -29,14 +30,37 @@ quit(int rc)
|
|||
exit(rc);
|
||||
}
|
||||
|
||||
static const char *
|
||||
getprioritystr(SDL_ThreadPriority priority)
|
||||
{
|
||||
switch(priority)
|
||||
{
|
||||
case SDL_THREAD_PRIORITY_LOW: return "SDL_THREAD_PRIORITY_LOW";
|
||||
case SDL_THREAD_PRIORITY_NORMAL: return "SDL_THREAD_PRIORITY_NORMAL";
|
||||
case SDL_THREAD_PRIORITY_HIGH: return "SDL_THREAD_PRIORITY_HIGH";
|
||||
case SDL_THREAD_PRIORITY_TIME_CRITICAL: return "SDL_THREAD_PRIORITY_TIME_CRITICAL";
|
||||
}
|
||||
|
||||
return "???";
|
||||
}
|
||||
|
||||
int SDLCALL
|
||||
ThreadFunc(void *data)
|
||||
{
|
||||
SDL_ThreadPriority prio = SDL_THREAD_PRIORITY_NORMAL;
|
||||
|
||||
SDL_TLSSet(tls, "baby thread", NULL);
|
||||
SDL_Log("Started thread %s: My thread id is %lu, thread data = %s\n",
|
||||
(char *) data, SDL_ThreadID(), (const char *)SDL_TLSGet(tls));
|
||||
while (alive) {
|
||||
SDL_Log("Thread '%s' is alive!\n", (char *) data);
|
||||
|
||||
if (testprio) {
|
||||
SDL_Log("SDL_SetThreadPriority(%s):%d\n", getprioritystr(prio), SDL_SetThreadPriority(prio));
|
||||
if (++prio > SDL_THREAD_PRIORITY_TIME_CRITICAL)
|
||||
prio = SDL_THREAD_PRIORITY_LOW;
|
||||
}
|
||||
|
||||
SDL_Delay(1 * 1000);
|
||||
}
|
||||
SDL_Log("Thread '%s' exiting!\n", (char *) data);
|
||||
|
|
@ -55,6 +79,7 @@ killed(int sig)
|
|||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int arg = 1;
|
||||
SDL_Thread *thread;
|
||||
|
||||
/* Enable standard application logging */
|
||||
|
|
@ -66,6 +91,13 @@ main(int argc, char *argv[])
|
|||
return (1);
|
||||
}
|
||||
|
||||
while (argv[arg] && *argv[arg] == '-') {
|
||||
if (SDL_strcmp(argv[arg], "--prio") == 0) {
|
||||
testprio = 1;
|
||||
}
|
||||
++arg;
|
||||
}
|
||||
|
||||
tls = SDL_TLSCreate();
|
||||
SDL_assert(tls);
|
||||
SDL_TLSSet(tls, "main thread", NULL);
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ static void createInstance(void)
|
|||
appInfo.apiVersion = VK_API_VERSION_1_0;
|
||||
instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||
instanceCreateInfo.pApplicationInfo = &appInfo;
|
||||
if(!SDL_Vulkan_GetInstanceExtensions(state->windows[0], &extensionCount, NULL))
|
||||
if(!SDL_Vulkan_GetInstanceExtensions(NULL, &extensionCount, NULL))
|
||||
{
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||
"SDL_Vulkan_GetInstanceExtensions(): %s\n",
|
||||
|
|
@ -268,7 +268,7 @@ static void createInstance(void)
|
|||
SDL_OutOfMemory();
|
||||
quit(2);
|
||||
}
|
||||
if(!SDL_Vulkan_GetInstanceExtensions(state->windows[0], &extensionCount, extensions))
|
||||
if(!SDL_Vulkan_GetInstanceExtensions(NULL, &extensionCount, extensions))
|
||||
{
|
||||
SDL_free((void*)extensions);
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||
|
|
|
|||
|
|
@ -146,6 +146,9 @@ main(int argc, char *argv[])
|
|||
quit(2);
|
||||
}
|
||||
|
||||
SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
|
||||
SDL_EventState(SDL_DROPTEXT, SDL_ENABLE);
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_Renderer *renderer = state->renderers[i];
|
||||
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue