⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framework.h

📁 国外游戏开发者杂志2003年第七期配套代码
💻 H
字号:
struct Texture_Vertex {
    float u, v;

    void set(float u, float v);
};

#include "app_shell.h"
#include "framework/os_win32.h"
#include "framework/data_structures.h"
#include "framework/geometry.h"
#include "framework/geometry_supplement.h"
#include "framework/projector.h"
#include "framework/auto_array.h"


struct Font;
struct Projector;
struct Shader;
struct Arguments;

struct Client_Globals {
    Font *big_font;
    Font *small_font;

    Transformer *transformer;
    Projector *view_projector;

    Vector3 camera_position;
    Quaternion camera_orientation;
};

extern Client_Globals client_globals;

struct Fast_Rendering_Vertex_Data {
    int num_vertices;
    int num_indices;
    int vertex_size_in_bytes;

    float *pointer_to_position_data(int vertex_index);
    float *pointer_to_vertex_normal_data(int vertex_index);
    unsigned long *pointer_to_diffuse_argb8888_data(int vertex_index);
    float *pointer_to_uv_data(int vertex_index);
    unsigned short *pointer_to_index_data(int vertex_index);

    int use_vertex_normals;
    int use_diffuse_argb8888;
    int num_uv_channels;

    int offset_diffuse_argb8888;
    int offset_vertex_normals;
    int offset_uvs;

    void *winsys_specific_1;
    void *winsys_specific_2;
    int winsys_specific_3;

    void *user_data;

    void *locked_data_pointer;
    void *locked_index_data_pointer;
};

void os_sleep(int milliseconds);

inline char *app_strdup(char *s) {
    int len = strlen(s);
    char *t = (char *)malloc(len + 1);
    strcpy(t, s);
    return t;
}


#define Min(x, y) (((x)>(y)) ? (y):(x))
#define Max(x, y) (((x)>(y)) ? (x):(y))

// Although Clamp is a useful one that gets used hugely.
#define Clamp(f, a, b) { if ((f) < (a)) (f) = (a); if ((f) > (b)) (f) = (b); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -