view test/common.h @ 3496:78fc8ea578b2

Joe 2009-11-23 21:31:10 PST If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions 367 * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses 368 * the first three \c dir parameters. The cardinal directions would be: 369 * - North: 0,-1, 0 370 * - East: -1, 0, 0 371 * - South: 0, 1, 0 372 * - West: 1, 0, 0 typedef struct SDL_HapticDirection { Uint8 type; /**< The type of encoding. */ Uint16 dir[3]; /**< The encoded direction. */ } SDL_HapticDirection; An unsigned int can't store negative values and I don't see an alternate way to encode them in the docs or source. The best I have been able to come up with is using a negative magnitude for the effect but this will only get me 2 of the 4 quadrants in the plane for 2d effects. I looked at the win32 and linux implementations and I believe is is safe to use signed ints in the direction struct. I am unfamiliar with the darwin haptics API so I don't know if it is safe.
author Sam Lantinga <slouken@libsdl.org>
date Fri, 27 Nov 2009 19:29:27 +0000
parents 55541ddf13e3
children f0b7bc1fe12d
line wrap: on
line source


/* A simple test program framework */

#include "SDL.h"

#define DEFAULT_WINDOW_WIDTH  640
#define DEFAULT_WINDOW_HEIGHT 480

#define VERBOSE_VIDEO   0x00000001
#define VERBOSE_MODES   0x00000002
#define VERBOSE_RENDER  0x00000004
#define VERBOSE_EVENT   0x00000008
#define VERBOSE_AUDIO   0x00000010

typedef struct
{
    /* SDL init flags */
    char **argv;
    Uint32 flags;
    Uint32 verbose;

    /* Video info */
    const char *videodriver;
    int display;
    const char *window_title;
    Uint32 window_flags;
    int window_x;
    int window_y;
    int window_w;
    int window_h;
    int depth;
    int refresh_rate;
    int num_windows;
    SDL_WindowID *windows;

    /* Renderer info */
    const char *renderdriver;
    Uint32 render_flags;
    SDL_bool skip_renderer;

    /* Audio info */
    const char *audiodriver;
    SDL_AudioSpec audiospec;

    /* GL settings */
    int gl_red_size;
    int gl_green_size;
    int gl_blue_size;
    int gl_alpha_size;
    int gl_buffer_size;
    int gl_depth_size;
    int gl_stencil_size;
    int gl_double_buffer;
    int gl_accum_red_size;
    int gl_accum_green_size;
    int gl_accum_blue_size;
    int gl_accum_alpha_size;
    int gl_stereo;
    int gl_multisamplebuffers;
    int gl_multisamplesamples;
    int gl_retained_backing;
    int gl_accelerated;
    int gl_major_version;
    int gl_minor_version;
} CommonState;

extern CommonState *CommonCreateState(char **argv, Uint32 flags);
extern int CommonArg(CommonState * state, int index);
extern const char *CommonUsage(CommonState * state);
extern SDL_bool CommonInit(CommonState * state);
extern void CommonEvent(CommonState * state, SDL_Event * event, int *done);
extern void CommonQuit(CommonState * state);