1// 2//------------------------------------------------------------ 3// Copyright(c) 2009-2010 by Digital Media Professionals Inc. 4// All rights reserved. 5//------------------------------------------------------------ 6// This source code is the confidential and proprietary 7// of Digital Media Professionals Inc. 8//------------------------------------------------------------ 9// 10 11// Input registers map 12#define aPosition v0 13#define aColor v1 14 15// Output registers map 16#define vPosition o0 17#define vQuaternion o1 18#define vView o2 19#define vTexCoord o3 20 21// Constant registers map 22#define MATRIX_ModelView c0 23#define MATRIX_ModelView0 c0 24#define MATRIX_ModelView00 c0 25#define MATRIX_ModelView01 c1 26#define MATRIX_ModelView02 c2 27#define MATRIX_ModelView03 c3 28 29#define MATRIX_Proj c4 30#define MATRIX_Proj0 c4 31#define MATRIX_Proj1 c5 32#define MATRIX_Proj2 c6 33#define MATRIX_Proj3 c7 34 35// Temporary registers map 36#define TEMP0 r0 37#define TEMP1 r1 38#define TEMP2 r2 39#define TEMP3 r3 40#define TEMP4 r4 41 42#define TEMP_TEX0 r10 43#define TEMP_TEX1 r11 44#define TEMP_TEX2 r12 45#define TEMP_TEX3 r13 46#define TEMP_TANG r13 47#define TEMP_NORM r14 48#define TEMP_VIEW r15 49#define TEMP_POS r12 50 51// Constant registers 52#define CONSTANT c93 53def CONSTANT[0], 0.0, 1.0, 2.0, 3.0 54def CONSTANT[1], 0.125, 0.00390625, 0.5, 0.25 55#define CONST_0 CONSTANT[0].x 56#define CONST_1 CONSTANT[0].y 57#define CONST_2 CONSTANT[0].z 58#define CONST_3 CONSTANT[0].w 59#define CONST_HALF CONSTANT[1].z 60#define CONST_QUARTER CONSTANT[1].w 61#define CONST_1_0 CONSTANT[0].yx 62#define CONST_1__4 CONSTANT[1].w 63#define CONST_1__8 CONSTANT[1].x 64#define CONST_1__256 CONSTANT[1].y 65 66#pragma bind_symbol(aPosition.xyzw,v0,v0) 67#pragma bind_symbol(aColor.xyzw,v1,v1) 68 69#pragma output_map (position, o0) 70#pragma output_map (color, o1) 71 72#pragma bind_symbol(uProjection,c0,c3) 73#pragma bind_symbol(uModelView,c4,c7) 74 75l_position: 76 m4x4 TEMP_VIEW, aPosition, MATRIX_ModelView 77 mov TEMP_POS, MATRIX_Proj2 78 add TEMP_POS, TEMP_POS, MATRIX_Proj3 79 mul TEMP_POS, TEMP_POS, -CONST_HALF 80 dp4 vPosition.x, TEMP_VIEW, MATRIX_Proj0 81 dp4 vPosition.y, TEMP_VIEW, MATRIX_Proj1 82 dp4 vPosition.z, TEMP_VIEW, TEMP_POS 83 dp4 vPosition.w, TEMP_VIEW, MATRIX_Proj3 84 ret 85 nop 86 87main: 88 call l_position 89 mov o1, aColor 90 end 91endmain: 92