📄 m3gmaterial.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 + -