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

📄 m3gsprite3d.c

📁 java 1.1 gemini 08_16
💻 C
字号:
/*****************************************************************************
 *
 * Filename:
 * ---------
 *  Sprite3D.c
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *   
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
 
/*************************************************************************
 * Include Header Files
 *************************************************************************/
#include "m3g.h"

#ifdef SUPPORT_JSR_184
/*************************************************************************
 * Function Definition
 *************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_javax_microedition_m3g_Sprite3D_create()
{
	jboolean scaled = KNI_GetParameterAsBoolean(1);
	st_m3g_image2d* image = (st_m3g_image2d*)KNI_GetParameterAsInt(2);
	st_m3g_appearance* appearance = (st_m3g_appearance*)KNI_GetParameterAsInt(3);	
	st_m3g_sprite3d* handle = NULL;

	if(image == NULL) {
		KNI_ThrowNew("java/lang/NullPointerException", "null image");
	} else {
		ENTER_M3D_CS;
		handle = M3G_Sprite3D_new(scaled, image, appearance);
		LEAVE_M3D_CS;
	}

	KNI_ReturnInt((jint)handle);
}	

KNIEXPORT KNI_RETURNTYPE_INT
Java_javax_microedition_m3g_Sprite3D_getAppearanceImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnInt((jint)handle->appearance);
	KNI_ReturnInt((jint)M3G_Sprite3D_getAppearance(handle));
}

KNIEXPORT KNI_RETURNTYPE_FLOAT
Java_javax_microedition_m3g_Sprite3D_getCropHeightImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnFloat((jfloat)handle->crop_height);
	KNI_ReturnFloat((jfloat)M3G_Sprite3D_getCropHeight(handle));
}	

KNIEXPORT KNI_RETURNTYPE_FLOAT
Java_javax_microedition_m3g_Sprite3D_getCropWidthImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnFloat((jfloat)handle->crop_width);
	KNI_ReturnFloat((jfloat)M3G_Sprite3D_getCropWidth(handle));
}	

KNIEXPORT KNI_RETURNTYPE_FLOAT
Java_javax_microedition_m3g_Sprite3D_getCropXImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnFloat((jfloat)handle->cropx);
	KNI_ReturnFloat((jfloat)M3G_Sprite3D_getCropX(handle));
}	

KNIEXPORT KNI_RETURNTYPE_FLOAT
Java_javax_microedition_m3g_Sprite3D_getCropYImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnFloat((jfloat)handle->cropy);
	KNI_ReturnFloat((jfloat)M3G_Sprite3D_getCropY(handle));
}	

KNIEXPORT KNI_RETURNTYPE_INT
Java_javax_microedition_m3g_Sprite3D_getImageImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnInt((jint)handle->image);
	KNI_ReturnInt((jint)M3G_Sprite3D_getImage(handle));
}	


KNIEXPORT KNI_RETURNTYPE_BOOLEAN
Java_javax_microedition_m3g_Sprite3D_isScaledImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnBoolean(handle->flag_scaled);
    KNI_ReturnBoolean(M3G_Sprite3D_isScaled(handle));
}	

KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Sprite3D_setAppearanceImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	st_m3g_appearance* appearance = (st_m3g_appearance*)KNI_GetParameterAsInt(2);
	
	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_SPRITE_SETAPPEARNCE, handle, appearance);

	if (M3G_Sprite3D_setAppearance(handle, appearance) != M3G_SUCCESS) {
		KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid appearance");				
	}

	KNI_ReturnVoid();
}	

KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Sprite3D_setCropImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	jint cropx = KNI_GetParameterAsInt(2);
	jint cropy = KNI_GetParameterAsInt(3);
	jint cropw = KNI_GetParameterAsInt(4);
	jint croph = KNI_GetParameterAsInt(5);	

	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_SPRITE_SETCROP, handle, cropx, cropy, cropw, croph);

	if(cropw > m3g_graphics3d.max_crop_width || croph > m3g_graphics3d.max_crop_height || 
	   cropw < -m3g_graphics3d.max_crop_width || croph < -m3g_graphics3d.max_crop_height) {
		KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid crop");		
	} else if (M3G_Sprite3D_setCrop(handle, cropx, cropy, cropw, croph) != M3G_SUCCESS) {
		KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid crop");		
	}
	
	KNI_ReturnVoid();
}	

KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Sprite3D_setImageImpl()
{
	st_m3g_sprite3d* handle = (st_m3g_sprite3d*)KNI_GetParameterAsInt(1);	
	st_m3g_image2d* image = (st_m3g_image2d*)KNI_GetParameterAsInt(2);	
	
	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_SPRITE_SETIMAGE, handle, image);

	if(image == NULL) {
		KNI_ThrowNew("java/lang/NullPointerException", "null image");
	} else {
		ENTER_M3D_CS;
		if (M3G_Sprite3D_setImage(handle, image) != M3G_SUCCESS) {
			KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid image");		
		}
		LEAVE_M3D_CS;
	}

	KNI_ReturnVoid();
}	
#endif /* #ifdef SUPPORT_JSR_184 */

⌨️ 快捷键说明

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