GFX游戏引擎衔接文件简述(一)c++代码部分

头文件:ATemplate.h

#ifndef ATEMPLATE_H
#define ATEMPLATE_H

#include "common/gfx.h"

typedef struct
{
void ( *Init			)( int width, int height );
void ( *Draw			)( void );
void ( *ToucheBegan	    )( float x, float y, unsigned int tap_count );
void ( *ToucheMoved	    )( float x, float y, unsigned int tap_count );
void ( *ToucheEnded	    )( float x, float y, unsigned int tap_count );
void ( *Accelerometer   )( float x, float y, float z );

} ATEMPLATE;

extern ATEMPLATE ATemplate;

void ATemplateInit(int width, int height);
void ATemplateDraw(void);
void ATemplateToucheBegan(float x, float y, unsigned int tap_count);
void ATemplateToucheMoved(float x, float y, unsigned int tap_count);
void ATemplateToucheEnded(float x, float y, unsigned int tap_count);
void ATemplateAccelerometer(float x, float y, float z);
void ATemplateToucheCancelled(float x, float y, unsigned int tap_count);
void ATemplateExit(void);

#ifndef _IPHONE_4_0
extern "C"{
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Init(JNIEnv* env,jobject obj,jint width,jint height,jstring apkFilePath);
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Draw(JNIEnv* env,jobject obj);
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheBegan(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count);
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheMoved(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count);
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheEnded(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count);
    JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Accelerometer(JNIEnv *env, jobject obj, jfloat x, jfloat y, jfloat z);
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Init(JNIEnv* env,jobject obj,jint width,jint height,jstring apkFilePath){
	setenv("FILESYSTEM", env->GetStringUTFChars(apkFilePath, NULL), 1);
	return ATemplate.Init(width,height);
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Draw(JNIEnv* env,jobject obj){
	if(ATemplate.Draw)ATemplate.Draw();
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheBegan(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count) {
	if(ATemplate.ToucheBegan)ATemplate.ToucheBegan(x,y,tap_count);
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheMoved(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count) {
    if(ATemplate.ToucheMoved)ATemplate.ToucheMoved(x,y,tap_count);
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_ToucheEnded(JNIEnv *env, jobject obj, jfloat x, jfloat y, jint tap_count) {
    if(ATemplate.ToucheEnded)ATemplate.ToucheEnded(x,y,tap_count);
}

JNIEXPORT void JNICALL Java_com_hl_atemplate_GL2JNILib_Accelerometer(JNIEnv *env, jobject obj, jfloat x, jfloat y, jfloat z) {
    if(ATemplate.Accelerometer)ATemplate.Accelerometer(x,y,z);
}

#endif
#endif


内容文件:ATemplate.cpp

#include <jni.h>
#include "ATemplate.h"

ATEMPLATE ATemplate = { ATemplateInit, ATemplateDraw, ATemplateToucheBegan, ATemplateToucheMoved, ATemplateToucheEnded, ATemplateAccelerometer };

void ATemplateInit(int width, int height) {

	//初始化
}

void ATemplateDraw(void) {

	//画面内容
}
void ATemplateToucheBegan(float x, float y, unsigned int tap_count) {
	//点击
}

void ATemplateToucheMoved(float x, float y, unsigned int tap_count) {
	//滑动
}

void ATemplateToucheEnded(float x, float y, unsigned int tap_count) {
	//点击结束
}

void ATemplateAccelerometer(float x, float y, float z) {
	//重力传感器
}

void ATemplateExit(void) {

	//退出要释放的
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值