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

📄 m3gmaterial.c

📁 java 1.1 gemini 08_16
💻 C
字号:
/*******************************************************************************
 *  Modification Notice:
 *  --------------------------
 *  This software is modified by MediaTek Inc. and the information contained
 *  herein is confidential. The software may not be copied and the information
 *  contained herein may not be used or disclosed except with the written
 *  permission of MediaTek Inc. (C) 2001
 *
 *******************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *  Material.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!
 *------------------------------------------------------------------------------
 * 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_Material_create()
{
	st_m3g_material* handle; 

	ENTER_M3D_CS;	
	handle = M3G_Material_new();
	LEAVE_M3D_CS;

	if (handle == NULL) KNI_ThrowNew("java/lang/NullPointerException", "null handle");	
	KNI_ReturnInt((jint)handle);
}

KNIEXPORT KNI_RETURNTYPE_INT
Java_javax_microedition_m3g_Material_getColorImpl()
{
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);
	jint target = KNI_GetParameterAsInt(2);
	jint color = 0;
	//////
	if (target != M3G_MATERIAL_AMBIENT && target != M3G_MATERIAL_DIFFUSE && 
        target != M3G_MATERIAL_EMISSIVE && target != M3G_MATERIAL_SPECULAR)
    {   
        KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid colortarget");
    }
    else
    {
        color = M3G_Material_getColor(handle,target);
    }
	KNI_ReturnInt(color);
}
 
KNIEXPORT KNI_RETURNTYPE_FLOAT
Java_javax_microedition_m3g_Material_getShininessImpl()
{	
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnFloat(_GL_N_2_FLOAT(handle->shininess));
	KNI_ReturnFloat(_GL_N_2_FLOAT(M3G_Material_getShininess(handle)));
}	

KNIEXPORT KNI_RETURNTYPE_BOOLEAN
Java_javax_microedition_m3g_Material_isVertexColorTrackingEnabledImpl()
{	
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);	
	//KNI_ReturnBoolean(handle->enable_vertexcolortracking);
	KNI_ReturnBoolean(M3G_Material_isVertexColorTrackingEnabled(handle));
}	

KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Material_setColorImpl()
{	
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);
	jint target = KNI_GetParameterAsInt(2);
	jint color = KNI_GetParameterAsInt(3);

	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_MATERIAL_SETCOLOR, handle, target, color);

	if(target & ~(M3G_MATERIAL_AMBIENT|M3G_MATERIAL_DIFFUSE|M3G_MATERIAL_EMISSIVE|M3G_MATERIAL_SPECULAR) ||
	   ((target & (M3G_MATERIAL_AMBIENT|M3G_MATERIAL_DIFFUSE|M3G_MATERIAL_EMISSIVE|M3G_MATERIAL_SPECULAR)) == 0)) {
		KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid colortarget");	
	} else {
		M3G_Material_setColor(handle, target, color);
	}

	KNI_ReturnVoid();
}	

KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Material_setShininessImpl()
{	
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);	
	jfloat shiness = KNI_GetParameterAsFloat(2);	

	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_SETSHINESS, handle, (int)shiness);

	if(shiness<0.0f || shiness>128.0f) {
		KNI_ThrowNew("java/lang/IllegalArgumentException", "invalid shininess");	
	} else {
		handle->shininess = _GL_FLOAT_2_N(shiness);
	}

	KNI_ReturnVoid();
}	
 
KNIEXPORT KNI_RETURNTYPE_VOID
Java_javax_microedition_m3g_Material_setVertexColorTrackingEnableImpl()
{	
	st_m3g_material* handle = (st_m3g_material*)KNI_GetParameterAsInt(1);	
	jboolean enable = KNI_GetParameterAsBoolean(2);	

	kal_trace(TRACE_GROUP_6, FUNC_J2ME_M3G_SETVERTEXCOLORTRACKING, handle, enable);
    M3G_Material_setVertexColorTrackingEnable(handle,enable);
	//handle->enable_vertexcolortracking = enable;
	KNI_ReturnVoid();
}
#endif /* #ifdef SUPPORT_JSR_184 */

⌨️ 快捷键说明

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