FreeRTOS Emulator with SDL2 Based Graphics and Input Library  1.0
A POSIX wrapper to run FreeRTOS on an x86 machine with some basic input and output libraries aimed at making teaching FreeRTOS simpler.
gfx_event.c File Reference

Utilities required by other gfx_XXX files. More...

#include <linux/unistd.h>
#include <assert.h>
#include "include/gfx_event.h"
#include "task.h"
#include "semphr.h"
#include "SDL2/SDL.h"
#include "SDL2/SDL_mouse.h"
#include "gfx_draw.h"
#include "gfx_utils.h"
#include "gfx_print.h"

Classes

struct  mouse
 

Macros

#define FETCH_BLOCK_S   0
 
#define FETCH_NONBLOCK_S   1
 
#define FETCH_NO_GL_CHECK_S   2
 

Typedefs

typedef struct mouse mouse_t
 

Functions

int gfxEventFetchEvents (int flags)
 Polls all outstanding SDL Events. Should be called from Draw Loop that holds the OpenGL context. More...
 
signed short gfxEventGetMouseX (void)
 Returns a copy of the mouse's most recent X coord (in pixels) More...
 
signed short gfxEventGetMouseY (void)
 Returns a copy of the mouse's most recent Y coord (in pixels) More...
 
signed char gfxEventGetMouseLeft (void)
 Returns a copy of the mouse's left button status. More...
 
signed char gfxEventGetMouseRight (void)
 Returns a copy of the mouse's right button status. More...
 
signed char gfxEventGetMouseMiddle (void)
 Returns a copy of the mouse's middle button status. More...
 
int gfxEventInit (void)
 Initializes the GFX Event backend. More...
 
void gfxEventExit (void)
 Deinitializes the GFX Event backend. More...
 

Variables

QueueHandle_t buttonInputQueue = NULL
 
mouse_t mouse
 
xSemaphoreHandle fetch_lock
 

Detailed Description

Utilities required by other gfx_XXX files.

Author
Alex Hoffman
Date
27 August 2019
   ----------------------------------------------------------------------
    Copyright (C) Alexander Hoffman, 2019
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
   ----------------------------------------------------------------------

Macro Definition Documentation

◆ FETCH_BLOCK_S

#define FETCH_BLOCK_S   0

◆ FETCH_NO_GL_CHECK_S

#define FETCH_NO_GL_CHECK_S   2

◆ FETCH_NONBLOCK_S

#define FETCH_NONBLOCK_S   1

Typedef Documentation

◆ mouse_t

typedef struct mouse mouse_t

Variable Documentation

◆ fetch_lock

xSemaphoreHandle fetch_lock

◆ mouse