view Renderer/Engine/viewer.h @ 507:735f76483bb2

Reorganization..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 12 Oct 2009 09:39:35 +0900
parents Renderer/test_render/viewer.h@55ea4465b1a2
children 8148c81d2660
line wrap: on
line source

#ifndef INCLUDED_VIEWER
#define INCLUDED_VIEWER

#include <SDL.h>

#include "viewer_types.h"
#include "TaskManager.h"
#include "KeyStat.h"

#include "Application.h"
#include "Application/Chain.h"


class Viewer {
public:
    //Viewer(TaskManager *manager, int bpp, int width, int height, int spenum);
    Viewer(int bpp, int width, int height, int spenum);

    virtual ~Viewer(void) {}

    Application *app;

    TaskManager *manager;
    key_stat *keyPtr;
    HTaskPtr draw_dummy;

    /* screen info */
    int width;
    int height;
    int bpp;

    int spe_num;

    int rgb_size[3];
    Uint32 video_flags;
    Uint32 *pixels;

    virtual void video_init(TaskManager *manager) = 0;
    void init();

    int get_ticks();
    bool quit_check();
    void quit();

    virtual void swap_buffers();
    virtual void clean_pixels() {}

    virtual void run_init(TaskManager *manager, const char *xml, int sg_number);
    virtual void run_loop(HTaskPtr task_next);
    virtual void run_draw(HTaskPtr task_next);
    virtual void run_finish();
    virtual void run_move(HTaskPtr task_next);
    virtual void run_collision();
    virtual void rendering(HTaskPtr task_next);
    virtual void common_draw(HTaskPtr task_next);
    virtual void common_rendering(HTaskPtr task_next);

    virtual void spe_rendering(HTaskPtr task_next);
    virtual void spe_draw(HTaskPtr task_next);
    //virtual void exchange_sgroot(TaskManager *manager);

    void getKey();
    void get_send_controll();
private:
    HTaskPtr initLoop();
    void mainLoop();
    void speLoop();

};

#define default_sdl_flag SDL_INIT_TIMER | SDL_INIT_JOYSTICK


#endif