初版
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#ifndef __FOOTBALL_H__
|
||||
#define __FOOTBALL_H__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
|
||||
struct cube_param {
|
||||
pJLGPUTaskHead_t head; //gpu链表
|
||||
};
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体模型初始化
|
||||
@param width[6] : 立方体6个面的宽度
|
||||
@param heihgt[6] : 立方体6个面的高度
|
||||
@param w_scale : 立方体每个面宽度的缩放系数
|
||||
@param h_scale : 立方体每个面高度的缩放系数
|
||||
@param view_distance : 视距(值越小, 立方体越大)
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_init(int width[6], int height[6], float w_scale, float h_scale, float view_distance, int win_x, int win_y, int win_w, int win_h);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体刷新
|
||||
@param x_diff : x方向偏移
|
||||
@param y_diff : y方向偏移
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_draw(struct cube_param *param, float x_diff, float y_diff);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体触摸点检测
|
||||
@param x : 触摸点x坐标
|
||||
@param y : 触摸点y坐标
|
||||
@return -1 : 触摸点未落在立方体上, >= 0: 立方体某个面的索引(从0开始)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_get_face_index(int x, int y);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void cube_uninit(void);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,66 @@
|
||||
#ifndef __CUBE_REFLECTION__
|
||||
#define __CUBE_REFLECTION__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
|
||||
struct cube_reflection_param {
|
||||
pJLGPUTaskHead_t head; //gpu链表
|
||||
};
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影模型初始化
|
||||
@param width : 立方体每个面的宽度
|
||||
@param heihgt : 立方体每个面的高度
|
||||
@param w_scale : 立方体每个面宽度的缩放系数
|
||||
@param h_scale : 立方体每个面高度的缩放系数
|
||||
@param view_distance : 视距(值越小, 立方体越大)
|
||||
@param view_distance_min : 视距最小值(值最小, 立方体最大)
|
||||
@param view_distance_max : 视距最大值(值最大, 立方体最小)
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_reflection_init(int width[12], int height[12], float w_scale, float h_scale, float view_distance, float view_distance_min, float view_distance_max, int win_x, int win_y, int win_w, int win_h);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影刷新
|
||||
@param x_update_val : x方向更新的角度
|
||||
@param y_update_val : y方向更新的角度
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_reflection_draw(struct cube_reflection_param *param, float x_update_val, float y_update_val);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影触摸点检测
|
||||
@param x : 触摸点x坐标
|
||||
@param y : 触摸点y坐标
|
||||
@return -1 : 触摸点未落在立方体上, >= 0: 立方体某个面的索引(从0开始)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int cube_reflection_get_face_index(int x, int y);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void cube_reflection_uninit(void);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief cube_reflection_get_face_angle 获取对应 ID 面的角度
|
||||
*
|
||||
* @Params index
|
||||
* @Params x_angle
|
||||
* @Params y_angle
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void cube_reflection_get_face_angle(int index, int *x_angle, int *y_angle);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,111 @@
|
||||
#ifndef __FOOTBALL_H__
|
||||
#define __FOOTBALL_H__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
|
||||
struct football_bg_rgb_t {
|
||||
u8 red;
|
||||
u8 green;
|
||||
u8 blue;
|
||||
};
|
||||
|
||||
struct football_param {
|
||||
pJLGPUTaskHead_t head;//gpu链表
|
||||
u8 mask_en; // 六边形背景+图标mask
|
||||
int element_id; //控件id(ui框架相关, 可不配置)
|
||||
int task_id; //gpu任务id(ui框架相关, 第三方UI框架需指定一个链表里唯一的标识, 用于区分不同的图片)
|
||||
int prior; //优先级(ui框架相关, 可不配置)
|
||||
int image_bg_num; //背景图片数量,固定用法, 0:无六边形背景图片(六边形图标) 1:共用一张六边形背景图片,可以单独上色(圆形图标) 3:使用3张六边形背景图片叠加,3张图片分别上色混合叠加(圆形图标) 20:使用20张六边形背景图片,跟圆形图标一一对应(圆形图标)
|
||||
int image_num; //图片数量
|
||||
struct ui_image_attrs *image_bg; //背景图片属性, 需要跟image_bg_num保持一致
|
||||
struct ui_image_attrs *image; //图片属性, 需要跟image_num保持一致
|
||||
struct football_bg_rgb_t *football_bg_rgb; // 背景图片颜色
|
||||
};
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 足球模型初始化
|
||||
@param width : 足球球面宽度
|
||||
@param height : 足球球面高度
|
||||
@param scale : 足球球面缩放
|
||||
@param view_distance : 视距(值越小, 足球越大)
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int football_init(int width, int height, float scale, float view_distance, int win_x, int win_y, int win_w, int win_h);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 足球刷新
|
||||
@param param : 足球显示相关参数
|
||||
@param x_diff : x方向偏移
|
||||
@param y_diff : y方向偏移
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_draw(struct football_param *param, float x_diff, float y_diff);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 足球触摸点检测
|
||||
@param x : 触摸点x坐标
|
||||
@param y : 触摸点y坐标
|
||||
@return -1: 触摸点未落在球面上, >= 0: 球面索引(从0开始)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int football_get_face_index(int x, int y);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 足球资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_uinit(void);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 设置mask图片缩放倍数(mask_en使能后有效)
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_set_mask_scale(float scale);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 足球六边形背景+图标mask
|
||||
@param
|
||||
@return
|
||||
@note 需在football_init后调用
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void set_football_bg_mask_en(u8 flag);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 设置mask图片缩放倍数(mask_en使能后有效)
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_set_mask_scale(float scale);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 获取足球位置
|
||||
@param cur_mat : 位置参数, float[9]数组
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_get_pos(float *cur_mat);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 设置足球位置
|
||||
@param cur_mat : 位置参数, float[9]数组
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void football_set_pos(float *cur_mat);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#ifndef __HEXAGON_H__
|
||||
#define __HEXAGON_H__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
|
||||
#define POLYTOPE_SIX 6 //六面体
|
||||
#define POLYTOPE_EIGHT 8 //八面体
|
||||
#define POLYTOPE_ALL 255 //共存
|
||||
#define POLYTOPE_CONFIG POLYTOPE_SIX
|
||||
extern const u8 polytope;
|
||||
void hexagon_polytope_type_set(u8 type);
|
||||
|
||||
struct hexagon_param {
|
||||
pJLGPUTaskHead_t head; //gpu链表
|
||||
};
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼模型初始化
|
||||
@param width : 立方体每个面的宽度
|
||||
@param heihgt : 立方体每个面的高度
|
||||
@param w_scale : 立方体每个面宽度的缩放系数
|
||||
@param h_scale : 立方体每个面高度的缩放系数
|
||||
@param view_distance : 视距(值越小, 立方体越大)
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@param h_ofs_range : 实际是 hexagon_draw 的 x_angle 范围, 用于计算投影中心的偏移
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int hexagon_init(int width[8], int height[8], float w_scale, float h_scale, float view_distance, int win_x, int win_y, int win_w, int win_h, float h_ofs_range);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief hexagon_draw
|
||||
*
|
||||
* @Params param
|
||||
* @Params x_update_val : x方向更新的角度
|
||||
* @Params y_update_val : y方向更新的角度
|
||||
* @param x_angle : 模型绕 x 轴旋转的角度
|
||||
* @param h_ofs_val : 实际是 hexagon_draw 的 x_angle 的有效偏移, 用于计算投影中心的偏移
|
||||
* @param reset_sep : 重新调整的 GPU 任务链表序号
|
||||
* @param is_draw : 当前是否需要绘制模型
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
int hexagon_draw(struct hexagon_param *param, float x_update_val, float y_update_val, float x_angle, float h_ofs_val, u8 *reset_sep, u8 is_draw);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼触摸点检测
|
||||
@param x : 触摸点x坐标
|
||||
@param y : 触摸点y坐标
|
||||
@return -1 : 触摸点未落在立方体上, >= 0: 立方体某个面的索引(从0开始)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int hexagon_get_face_index(int x, int y);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void hexagon_uninit(void);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief hexagon_get_face_angle 获取对应 ID 面的角度
|
||||
*
|
||||
* @Params index
|
||||
* @Params x_angle
|
||||
* @Params y_angle
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void hexagon_get_face_angle(int index, int *x_angle, int *y_angle);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,119 @@
|
||||
#ifndef __JLUI_EFFECT__
|
||||
#define __JLUI_EFFECT__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
|
||||
void get_flip_matrix(gpu_matrix_t *matrix, int screen_x, int screen_y, int screen_w, int screen_h, float degree);
|
||||
int get_flip_width(int screen_w, float degree);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief get_cube_flip_matrix
|
||||
*
|
||||
* @Params matrix
|
||||
* @Params screen_x
|
||||
* @Params screen_y
|
||||
* @Params screen_w
|
||||
* @Params screen_h
|
||||
* @Params degree
|
||||
* @Params is_reflection : 是否为镜像面, 0 - 非镜像; 1 - 镜像
|
||||
* @Params flip_dir : 翻转方向, 0 - 从右向左; 1 - 从左向右
|
||||
* @Params face_flag : 是否为当前页面, 0 - 当前页面; 1 - 上一页或下一页
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void get_cube_flip_matrix(gpu_matrix_t *matrix, int screen_x, int screen_y, int screen_w, int screen_h, float degree, u8 is_reflection, u8 flip_dir, u8 face_flag);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief get_drift_flip_matrix
|
||||
*
|
||||
* @Params matrix
|
||||
* @Params screen_x
|
||||
* @Params screen_y
|
||||
* @Params screen_w
|
||||
* @Params screen_h
|
||||
* @Params degree
|
||||
* @Params is_reflection : 是否为镜像面, 0 - 非镜像; 1 - 镜像
|
||||
* @Params flip_dir : 翻转方向, 0 - 从右向左; 1 - 从左向右
|
||||
* @Params face_flag : 是否为当前页面, 0 - 当前页面; 1 - 上一页或下一页
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void get_drift_flip_matrix(gpu_matrix_t *matrix, int screen_x, int screen_y, int screen_w, int screen_h, float degree, u8 is_reflection, u8 flip_dir, u8 face_flag);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief get_edge_flip_matrix
|
||||
*
|
||||
* @Params matrix
|
||||
* @Params screen_x
|
||||
* @Params screen_y
|
||||
* @Params screen_w
|
||||
* @Params screen_h
|
||||
* @Params degree
|
||||
* @Params flip_dir : 翻转方向, 0 - 从右向左; 1 - 从左向右
|
||||
* @Params face_flag : 是否为当前页面, 0 - 当前页面; 1 - 上一页或下一页
|
||||
* @Params angle : 两个页面之间的夹角
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void get_edge_flip_matrix(gpu_matrix_t *matrix, int screen_x, int screen_y, int screen_w, int screen_h, float degree, u8 flip_dir, u8 face_flag, float angle);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体模型初始化
|
||||
@param width : 立方体每个面的宽度
|
||||
@param heihgt : 立方体每个面的高度
|
||||
@param w_scale : 立方体每个面宽度的缩放系数
|
||||
@param h_scale : 立方体每个面高度的缩放系数
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int board_cube_init(int width, int height, float w_scale, float h_scale, int win_x, int win_y, int win_w, int win_h);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 立方体资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void board_cube_uninit(void);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief get_board_flip_matrix
|
||||
*
|
||||
* @Params matrix
|
||||
* @Params degree
|
||||
* @Params flip_dir : 翻转方向, 0 - 从右向左; 1 - 从左向右
|
||||
* @Params face_flag : 选择当前页面, 0 - 当前页面; 1 - 上一页或下一页; 2 - 左侧板宽; 3 - 右侧板宽
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void get_board_flip_matrix(gpu_matrix_t *matrix, float degree, u8 flip_dir, u8 face_flag);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief create_board_flip_fill_task
|
||||
*
|
||||
* @Params head
|
||||
* @Params draw_rect
|
||||
* @Params color
|
||||
* @Params degree
|
||||
* @Params flip_dir : 翻转方向, 0 - 从右向左; 1 - 从左向右
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void create_board_flip_fill_task(pJLGPUTaskHead_t head, struct rect draw_rect, u32 color, float degree, u8 flip_dir);
|
||||
|
||||
#endif //__JLUI_EFFECT__
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
#ifndef __REFLECTION__
|
||||
#define __REFLECTION__
|
||||
|
||||
#include "gpu_port.h"
|
||||
#include "ui_core.h"
|
||||
#include "hexagon.h"
|
||||
|
||||
#define REF_POLYTOPE_SIX 6 //六面体
|
||||
#define REF_POLYTOPE_EIGHT 8 //八面体
|
||||
#define REF_POLYTOPE_ALL 255 //共存
|
||||
#define REF_POLYTOPE_CONFIG REF_POLYTOPE_SIX
|
||||
extern const u8 ref_polytope;
|
||||
void hexagon_reflection_polytope_type_set(u8 type);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影模型初始化
|
||||
@param width : 立方体每个面的宽度
|
||||
@param heihgt : 立方体每个面的高度
|
||||
@param w_scale : 立方体每个面宽度的缩放系数
|
||||
@param h_scale : 立方体每个面高度的缩放系数
|
||||
@param view_distance : 视距(值越小, 立方体越大)
|
||||
@param win_x : win区域x坐标偏移
|
||||
@param win_y : win区域y坐标偏移
|
||||
@param win_w : win区域宽度
|
||||
@param win_h : win区域高度
|
||||
@param h_ofs_range : 实际是 reflection_draw 的 x_angle 范围, 用于计算投影中心的偏移
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int reflection_init(int width[16], int height[16], float w_scale, float h_scale, float view_distance, int win_x, int win_y, int win_w, int win_h, float h_ofs_range);
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D灯笼倒影本体与倒影之间的间距
|
||||
@param interval : 间距(默认值为30.0f, 值越大,间距越大)
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void reflection_set_interval(float interval);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影刷新
|
||||
@param x_diff : x方向偏移
|
||||
@param y_diff : y方向偏移
|
||||
@param x_angle : 模型绕 x 轴旋转的角度
|
||||
@param h_ofs_val : 实际是 reflection_draw 的 x_angle 的有效偏移, 用于计算投影中心的偏移
|
||||
@param reset_sep : 重新调整的 GPU 任务链表序号
|
||||
@param is_draw : 当前是否需要绘制模型
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int reflection_draw(struct hexagon_param *param, float x_diff, float y_diff, float x_angle, float h_ofs_val, u8 *reset_sep, u8 is_draw);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影触摸点检测
|
||||
@param x : 触摸点x坐标
|
||||
@param y : 触摸点y坐标
|
||||
@return -1 : 触摸点未落在立方体上, >= 0: 立方体某个面的索引(从0开始)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int reflection_get_face_index(int x, int y);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 3D 灯笼倒影资源释放
|
||||
@param
|
||||
@return
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void reflection_uninit(void);
|
||||
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief reflection_get_face_angle 获取对应 ID 面的角度
|
||||
*
|
||||
* @Params index
|
||||
* @Params x_angle
|
||||
* @Params y_angle
|
||||
*/
|
||||
/* ------------------------------------------------------------------------------------*/
|
||||
void reflection_get_face_angle(int index, int *x_angle, int *y_angle);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef __RUBIKS_CUBE_H__
|
||||
#define __RUBIKS_CUBE_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct rubiks_cube_screen_info {
|
||||
int screen_width; // 屏幕宽
|
||||
int screen_height; // 屏幕高
|
||||
int side; // 边长
|
||||
int gamepad; // 控制面旋转幅度的量
|
||||
};
|
||||
|
||||
int rubiks_cube_init(int width, int height, void *cfg_task, void *draw_cube); //初始化魔方游戏
|
||||
int rubiks_cube_uninit(void); //退出魔方游戏
|
||||
void restore_cube(void); //复原魔方
|
||||
void OnMove(int x, int y); //输入设备MOVE事件中调用
|
||||
void OnMouseUp(int x, int y); //输入设备UP事件中调用
|
||||
void OnMouseDown(int x, int y);
|
||||
int is_cube_restored(void); //1:复原完成
|
||||
void random_cube(void); //随机打乱魔方
|
||||
|
||||
void draw_quadrilateral(float points[8], uint8_t color[4]);
|
||||
void display_cube(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
|
||||
#endif // __RUBIKS_CUBE_H__
|
||||
Reference in New Issue
Block a user