test/testrelative.c
author Edward Rudd <urkle@outoforder.cc>
Sat, 12 Oct 2013 11:21:40 -0400
changeset 7807 73da2747c268
parent 7787 e6f3e8fc96ea
child 8149 681eb46b8ac4
permissions -rw-r--r--
added simple Drag & drop test
slouken@6311
     1
/*
slouken@7517
     2
  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
slouken@6311
     3
slouken@6311
     4
  This software is provided 'as-is', without any express or implied
slouken@6311
     5
  warranty.  In no event will the authors be held liable for any damages
slouken@6311
     6
  arising from the use of this software.
slouken@6311
     7
slouken@6311
     8
  Permission is granted to anyone to use this software for any purpose,
slouken@6311
     9
  including commercial applications, and to alter it and redistribute it
slouken@6311
    10
  freely.
slouken@6311
    11
*/
slouken@6311
    12
slouken@6311
    13
/* Simple program:  Test relative mouse motion */
slouken@6311
    14
slouken@6311
    15
#include <stdlib.h>
slouken@6311
    16
#include <stdio.h>
slouken@6311
    17
#include <time.h>
slouken@6311
    18
slouken@6785
    19
#include "SDL_test_common.h"
slouken@6311
    20
slouken@6311
    21
slouken@6785
    22
static SDLTest_CommonState *state;
slouken@6311
    23
static SDL_Rect rect;
slouken@6311
    24
slouken@6311
    25
static void
slouken@6311
    26
DrawRects(SDL_Renderer * renderer)
slouken@6311
    27
{
slouken@6311
    28
    SDL_SetRenderDrawColor(renderer, 255, 127, 0, 255);
slouken@6311
    29
    SDL_RenderFillRect(renderer,&rect);
slouken@6311
    30
}
slouken@6311
    31
slouken@6311
    32
int
slouken@6311
    33
main(int argc, char *argv[])
slouken@6311
    34
{
slouken@6311
    35
    int i, done;
slouken@6311
    36
    SDL_Event event;
slouken@6311
    37
aschiffler@7639
    38
	/* Enable standard application logging */
aschiffler@7639
    39
    SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
slouken@7191
    40
slouken@6311
    41
    /* Initialize test framework */
slouken@6785
    42
    state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
slouken@6311
    43
    if (!state) {
slouken@6311
    44
        return 1;
slouken@6311
    45
    }
dimitris@6318
    46
    for (i = 1; i < argc;i++) {
slouken@6785
    47
        SDLTest_CommonArg(state, i);
dimitris@6318
    48
    }
slouken@6785
    49
    if (!SDLTest_CommonInit(state)) {
slouken@6311
    50
        return 2;
slouken@6311
    51
    }
slouken@6311
    52
slouken@6311
    53
    /* Create the windows and initialize the renderers */
slouken@6311
    54
    for (i = 0; i < state->num_windows; ++i) {
slouken@6311
    55
        SDL_Renderer *renderer = state->renderers[i];
slouken@6311
    56
        SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE);
slouken@6311
    57
        SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
slouken@6311
    58
        SDL_RenderClear(renderer);
slouken@6311
    59
    }
slouken@6311
    60
slouken@6311
    61
    srand((unsigned int)time(NULL));
dimitris@6316
    62
    if(SDL_SetRelativeMouseMode(SDL_TRUE) < 0) {
dimitris@6316
    63
        return 3;
dimitris@6316
    64
    };
slouken@6311
    65
slouken@6311
    66
    rect.x = DEFAULT_WINDOW_WIDTH / 2;
slouken@6311
    67
    rect.y = DEFAULT_WINDOW_HEIGHT / 2;
slouken@6311
    68
    rect.w = 10;
slouken@6311
    69
    rect.h = 10;
slouken@6311
    70
    /* Main render loop */
slouken@6311
    71
    done = 0;
slouken@6311
    72
    while (!done) {
slouken@6311
    73
        /* Check for events */
slouken@6311
    74
        while (SDL_PollEvent(&event)) {
slouken@6785
    75
            SDLTest_CommonEvent(state, &event, &done);
slouken@6311
    76
            switch(event.type) {
slouken@6311
    77
                case SDL_MOUSEMOTION:
slouken@6311
    78
                {
slouken@6311
    79
                    rect.x += event.motion.xrel;
slouken@6311
    80
                    rect.y += event.motion.yrel;
slouken@6311
    81
                }
slouken@6311
    82
                break;
slouken@6311
    83
            }
slouken@6311
    84
        }
slouken@6311
    85
        for (i = 0; i < state->num_windows; ++i) {
slouken@6311
    86
            SDL_Renderer *renderer = state->renderers[i];
slouken@7787
    87
            if (state->windows[i] == NULL)
slouken@7787
    88
                continue;
slouken@6311
    89
            SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
slouken@6311
    90
            SDL_RenderClear(renderer);
slouken@6311
    91
slouken@6311
    92
            DrawRects(renderer);
slouken@6311
    93
slouken@6311
    94
            SDL_RenderPresent(renderer);
slouken@6311
    95
        }
slouken@6311
    96
    }
slouken@6311
    97
slouken@6785
    98
    SDLTest_CommonQuit(state);
slouken@6311
    99
    return 0;
slouken@6311
   100
}
slouken@6311
   101
slouken@6311
   102
/* vi: set ts=4 sw=4 expandtab: */