mirror of https://github.com/PCSX2/pcsx2.git
gsdx, sdl: cast window as expected by sdl
onepad: add an option to control forcefeeback level cmake: add an hidden option (SHARED_SDL) to build SDL as a shared library to allow pre-load git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4873 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
9bfbbf0a0c
commit
783f600711
|
@ -388,7 +388,28 @@ set(SDL_sources
|
||||||
|
|
||||||
#include_directories( ${SDL_ROOT}/include /usr/include/kde/artsc /usr/include/directfb)
|
#include_directories( ${SDL_ROOT}/include /usr/include/kde/artsc /usr/include/directfb)
|
||||||
|
|
||||||
add_library(${Output} STATIC ${SDL_sources} )
|
|
||||||
|
# Hiden option. It is only a temporary workaround of issue 1003. The purpose is to LD_PRELOAD
|
||||||
|
# the library so it avoid any conflict with previous SDL1.2 symbol
|
||||||
|
if (DEFINED SHARED_SDL)
|
||||||
|
add_library(${Output} SHARED ${SDL_sources} )
|
||||||
|
|
||||||
|
# Seem to be needed when pre-loading on Fedora
|
||||||
|
target_link_libraries(${Output} dl)
|
||||||
|
target_link_libraries(${Output} m)
|
||||||
|
|
||||||
|
# Install the library with others plugins
|
||||||
|
if(PACKAGE_MODE)
|
||||||
|
install(TARGETS ${Output} DESTINATION ${PLUGIN_DIR})
|
||||||
|
else(PACKAGE_MODE)
|
||||||
|
install(TARGETS ${Output} DESTINATION ${CMAKE_SOURCE_DIR}/bin/plugins)
|
||||||
|
endif(PACKAGE_MODE)
|
||||||
|
|
||||||
|
else (DEFINED SHARED_SDL)
|
||||||
|
# Std build use static build
|
||||||
|
add_library(${Output} STATIC ${SDL_sources} )
|
||||||
|
endif (DEFINED SHARED_SDL)
|
||||||
|
|
||||||
|
|
||||||
# User flags options
|
# User flags options
|
||||||
if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
||||||
|
|
|
@ -512,9 +512,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
int
|
int
|
||||||
X11_CreateWindowFrom(_THIS, SDL_Window * window, const void *data)
|
X11_CreateWindowFrom(_THIS, SDL_Window * window, const void *data)
|
||||||
{
|
{
|
||||||
// For me it is a bug -- Gregory
|
Window w = (Window) data;
|
||||||
// Window w = (Window) data;
|
|
||||||
Window w = *(Window*) data;
|
|
||||||
|
|
||||||
window->title = X11_GetWindowTitle(_this, w);
|
window->title = X11_GetWindowTitle(_this, w);
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,23 @@ PWD_old=$PWD
|
||||||
|
|
||||||
# Go to the script directory
|
# Go to the script directory
|
||||||
cd `dirname $current_script`
|
cd `dirname $current_script`
|
||||||
if [ -e pcsx2 ] ; then
|
|
||||||
|
# Setup LD_PRELOAD to work-around issue 1003
|
||||||
|
SDL_SO=`pwd`/plugins/libpcsx2_SDL.so
|
||||||
|
if [ -e "$SDL_SO" ]
|
||||||
|
then
|
||||||
|
echo "INFO: LD_PRELOAD $SDL_SO"
|
||||||
|
if [ -n "$LD_PRELOAD" ]
|
||||||
|
then
|
||||||
|
LD_PRELOAD="$SDL_SO:$LD_PRELOAD"
|
||||||
|
else
|
||||||
|
LD_PRELOAD="$SDL_SO"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Launch PCSX2
|
||||||
|
if [ -x pcsx2 ]
|
||||||
|
then
|
||||||
./pcsx2
|
./pcsx2
|
||||||
else
|
else
|
||||||
echo "Error PCSX2 not found"
|
echo "Error PCSX2 not found"
|
||||||
|
|
|
@ -98,7 +98,7 @@ bool RunLinuxDialog()
|
||||||
gtk_combo_box_append_text(GTK_COMBO_BOX(interlace_combo_box), label.c_str());
|
gtk_combo_box_append_text(GTK_COMBO_BOX(interlace_combo_box), label.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_combo_box_set_active(GTK_COMBO_BOX(interlace_combo_box), 0);
|
gtk_combo_box_set_active(GTK_COMBO_BOX(interlace_combo_box), theApp.GetConfig("interlace", 0));
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), interlace_label);
|
gtk_container_add(GTK_CONTAINER(main_box), interlace_label);
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), interlace_combo_box);
|
gtk_container_add(GTK_CONTAINER(main_box), interlace_combo_box);
|
||||||
|
|
||||||
|
@ -143,17 +143,17 @@ bool RunLinuxDialog()
|
||||||
{
|
{
|
||||||
// Get all the settings from the dialog box.
|
// Get all the settings from the dialog box.
|
||||||
|
|
||||||
#if 0 // I'll put the right variable names in later.
|
#if 0
|
||||||
|
// I'll put the right variable names in later.
|
||||||
if (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box)) != -1)
|
if (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box)) != -1)
|
||||||
renderer = gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box));
|
renderer = gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box));
|
||||||
|
|
||||||
|
// Crash, for some interlace options
|
||||||
if (gtk_combo_box_get_active(GTK_COMBO_BOX(interlace_combo_box)) != -1)
|
if (gtk_combo_box_get_active(GTK_COMBO_BOX(interlace_combo_box)) != -1)
|
||||||
interlace = gtk_combo_box_get_active(GTK_COMBO_BOX(interlace_combo_box));
|
theApp.SetConfig( "interlace", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(interlace_combo_box)) );
|
||||||
|
|
||||||
if (gtk_combo_box_get_active(GTK_COMBO_BOX(aspect_combo_box)) != -1)
|
|
||||||
aspect = gtk_combo_box_get_active(GTK_COMBO_BOX(aspect_combo_box));
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
theApp.SetConfig("swthreads", atoi((char*)gtk_entry_get_text(GTK_ENTRY(swthreads_text))) );
|
theApp.SetConfig("swthreads", atoi((char*)gtk_entry_get_text(GTK_ENTRY(swthreads_text))) );
|
||||||
|
|
||||||
theApp.SetConfig("filter", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filter_check)));
|
theApp.SetConfig("filter", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filter_check)));
|
||||||
|
|
|
@ -108,7 +108,7 @@ public:
|
||||||
bool IsManaged() const {return m_managed;}
|
bool IsManaged() const {return m_managed;}
|
||||||
|
|
||||||
Display* GetDisplay();
|
Display* GetDisplay();
|
||||||
void* GetHandle() {return (void*)&m_Xwindow;}
|
void* GetHandle() {return (void*)m_Xwindow;}
|
||||||
GSVector4i GetClientRect();
|
GSVector4i GetClientRect();
|
||||||
bool SetWindowText(const char* title);
|
bool SetWindowText(const char* title);
|
||||||
void SetWindow(SDL_Window* current_window) { if (current_window) m_window = current_window; }
|
void SetWindow(SDL_Window* current_window) { if (current_window) m_window = current_window; }
|
||||||
|
|
|
@ -132,6 +132,7 @@ void SaveConfig()
|
||||||
fprintf(f, "options = %d\n", conf->options);
|
fprintf(f, "options = %d\n", conf->options);
|
||||||
fprintf(f, "mouse_sensibility = %d\n", conf->sensibility);
|
fprintf(f, "mouse_sensibility = %d\n", conf->sensibility);
|
||||||
fprintf(f, "joy_pad_map = %d\n", conf->joyid_map);
|
fprintf(f, "joy_pad_map = %d\n", conf->joyid_map);
|
||||||
|
fprintf(f, "ff_intensity = %d\n", conf->ff_intensity);
|
||||||
|
|
||||||
for (int pad = 0; pad < 2; pad++)
|
for (int pad = 0; pad < 2; pad++)
|
||||||
{
|
{
|
||||||
|
@ -178,6 +179,8 @@ void LoadConfig()
|
||||||
conf->sensibility = value;
|
conf->sensibility = value;
|
||||||
if (fscanf(f, "joy_pad_map = %d\n", &value) == 0) return;
|
if (fscanf(f, "joy_pad_map = %d\n", &value) == 0) return;
|
||||||
conf->joyid_map = value;
|
conf->joyid_map = value;
|
||||||
|
if (fscanf(f, "ff_intensity = %d\n", &value) == 0) return;
|
||||||
|
conf->ff_intensity = value;
|
||||||
|
|
||||||
for (int pad = 0; pad < 2; pad++)
|
for (int pad = 0; pad < 2; pad++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,6 +63,7 @@ struct PADconf
|
||||||
u32 options; // upper 16 bits are for pad2
|
u32 options; // upper 16 bits are for pad2
|
||||||
u32 sensibility;
|
u32 sensibility;
|
||||||
u32 joyid_map;
|
u32 joyid_map;
|
||||||
|
u32 ff_intensity;
|
||||||
map<u32,u32> keysym_map[2];
|
map<u32,u32> keysym_map[2];
|
||||||
|
|
||||||
PADconf() { init(); }
|
PADconf() { init(); }
|
||||||
|
@ -70,6 +71,7 @@ struct PADconf
|
||||||
void init() {
|
void init() {
|
||||||
memset(&keys, 0, sizeof(keys));
|
memset(&keys, 0, sizeof(keys));
|
||||||
log = options = joyid_map = 0;
|
log = options = joyid_map = 0;
|
||||||
|
ff_intensity = 100;
|
||||||
sensibility = 500;
|
sensibility = 500;
|
||||||
for (int pad = 0; pad < 2 ; pad++)
|
for (int pad = 0; pad < 2 ; pad++)
|
||||||
keysym_map[pad].clear();
|
keysym_map[pad].clear();
|
||||||
|
|
|
@ -186,7 +186,7 @@ void JoystickInfo::DoHapticEffect(int type, int pad, int force)
|
||||||
if (pjoy->haptic_effect_id[type] < 0) return;
|
if (pjoy->haptic_effect_id[type] < 0) return;
|
||||||
|
|
||||||
// FIXME: might need to multiply force
|
// FIXME: might need to multiply force
|
||||||
pjoy->haptic_effect_data[type].periodic.magnitude = force; // force/32767 strength
|
pjoy->haptic_effect_data[type].periodic.magnitude = force * conf->ff_intensity ; // force/32767 strength
|
||||||
// Upload the new effect
|
// Upload the new effect
|
||||||
SDL_HapticUpdateEffect(pjoy->haptic, pjoy->haptic_effect_id[type], &pjoy->haptic_effect_data[type]);
|
SDL_HapticUpdateEffect(pjoy->haptic, pjoy->haptic_effect_id[type], &pjoy->haptic_effect_data[type]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue