BizHawk/yabause/src/osdcore.h

83 lines
2.1 KiB
C

/* Copyright 2012 Guillaume Duhamel
This file is part of Yabause.
Yabause 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 2 of the License, or
(at your option) any later version.
Yabause 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 Yabause; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef OSDCORE_H
#define OSDCORE_H
#include "core.h"
#define OSDCORE_DUMMY 0
#define OSDCORE_GLUT 1
#define OSDCORE_SOFT 2
#ifdef HAVE_LIBGLUT
#define OSDCORE_DEFAULT OSDCORE_GLUT
#else
#define OSDCORE_DEFAULT OSDCORE_SOFT
#endif
#define OSDMSG_FPS 0
#define OSDMSG_STATUS 1
#define OSDMSG_DEBUG 2
#define OSDMSG_COUNT 3
typedef struct {
int type;
char * message;
int timetolive;
int timeleft;
int hidden;
} OSDMessage_struct;
typedef struct {
int id;
const char *Name;
int (*Init)(void);
void (*DeInit)(void);
void (*Reset)(void);
void (*DisplayMessage)(OSDMessage_struct * message, u32 * buffer, int w, int h);
int (*UseBuffer)(void);
} OSD_struct;
int OSDInit(int coreid);
int OSDChangeCore(int coreid);
void OSDPushMessage(int msgtype, int ttl, const char * message, ...);
int OSDDisplayMessages(u32 * buffer, int w, int h);
void OSDToggle(int what);
int OSDIsVisible(int what);
void OSDSetVisible(int what, int visible);
int OSDUseBuffer(void);
extern OSD_struct OSDDummy;
#ifdef HAVE_LIBGLUT
extern OSD_struct OSDGlut;
#endif
extern OSD_struct OSDSoft;
/* defined for backward compatibility (used to be in vdp2.h) */
void ToggleFPS(void);
int GetOSDToggle(void);
void SetOSDToggle(int toggle);
void DisplayMessage(const char* str);
#endif