host_graph.h 2.43 KB
/**************************************************************************************************
 * Description : contain all dependent host OS graph functions and definitions
 * File       : host_graph.h
 * Creation    : 14/11/2004
 * Author      : david RENE <david.rene@free.fr>
 * Copyright 2004 Alain Prouté. All Rights Reserved.
 *
 *************************************************************************************************/


#ifndef __HOST_GRAPH_H__
#define __HOST_GRAPH_H__

#ifdef _WITH_GRAPHISM_
#include "AnubisSupport.h"

#ifdef _LINUX_
#include "linux/host_graph_linux.h"
#elif WIN32
#include "win32/host_graph_win32.h"
#elif __BEOS__
#include "beos/host_graph_beos.h"
#endif
   
#include "vm.h"   
#include "constructors.h"
#include "DebugLog.h"

#ifdef __cplusplus
extern "C" {
#endif
/**
 * Initializing host OS graphic core 
 */
void host_init_graphism(void);
void host_free_graphical_resources(void);
void host_change_host_window_title(U32 the_window, char *title);
void host_paint_host_image(U32 the_window, U32 the_pixmap, int a, int b, int u, int v, int x, int y);
U32  host_create_pixmap(U32 target_width, U32 target_height);
void host_pixmap_size(HostImage pixmap, U32 * wSize, U32 * hSize);

void host_paint_pixel_to(U32 dest, U32 x, U32 y, U32 color);
void host_begin_paint(U32 handle);
void host_end_paint(U32 handle);
void host_sc_paint_rectangle(U32 handle, U32 gc, int x, int y, int w, int h, U32 color);
void host_sc_paint_rectangle_to_buffer(U32 gc, int x, int y, int w, int h, U32 color);
void host_draw_pixel_to_buffer(HostImage buffer, U32 x, U32 y, U32 color);
void host_paint_host_image_to_buffer(U32 src, U32 dest, int a, int b, int w, int h, int x, int y);
void host_sc_show_host_window(U32 the_window);
void host_sc_hide_host_window(U32 the_window);


void  host_queue_host_window_events(void);
U8    host_translate_keyboard_state(unsigned int state);
void  host_sc_screen_size(U32 *witdh, U32 *height);
bool  host_sc_open_host_window(U32 xWin, U32 yWin, U32 wWin, U32 hWin, char * title, 
                               bool transcientFlag, bool resizable, U32 *the_window, U32 *the_gc);
void  host_sc_host_window_size(U32 handle, U32 * wSize, U32 * hSize);
void  host_sc_resize_host_window(U32 handle, int width, int height);    

void  host_free_host_window(U32 winPointer);
void  host_free_host_pixmap(U32 pixPointer);
void  host_free_host_gc(U32 gcPointer);

#ifdef __cplusplus
}
#endif

#endif // _WITH_GRAPHISM_

#endif