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#define aTexCoord v2 15 16// Output registers map 17#define vPosition o0 18#define vQuaternion o1 19#define vView o2 20#define vTexCoord o3 21 22// Constant registers map 23#define MATRIX_Proj c0 24#define MATRIX_Proj0 c0 25#define MATRIX_Proj1 c1 26#define MATRIX_Proj2 c2 27#define MATRIX_Proj3 c3 28 29#define MATRIX_ModelView c4 30#define MATRIX_ModelView0 c4 31#define MATRIX_ModelView00 c4 32#define MATRIX_ModelView01 c5 33#define MATRIX_ModelView02 c6 34#define MATRIX_ModelView03 c7 35 36// Temporary registers map 37#define TEMP0 r0 38#define TEMP1 r1 39#define TEMP2 r2 40#define TEMP3 r3 41#define TEMP4 r4 42 43#define TEMP_TEX0 r10 44#define TEMP_TEX1 r11 45#define TEMP_TEX2 r12 46#define TEMP_TEX3 r13 47#define TEMP_TANG r13 48#define TEMP_NORM r14 49#define TEMP_VIEW r15 50#define TEMP_POS r12 51 52// Constant registers 53#define CONSTANT c93 54def CONSTANT[0], 0.0, 1.0, 2.0, 3.0 55def CONSTANT[1], 0.125, 0.00390625, 0.5, 0.25 56#define CONST_0 CONSTANT[0].x 57#define CONST_1 CONSTANT[0].y 58#define CONST_2 CONSTANT[0].z 59#define CONST_3 CONSTANT[0].w 60#define CONST_HALF CONSTANT[1].z 61#define CONST_QUARTER CONSTANT[1].w 62#define CONST_1_0 CONSTANT[0].yx 63#define CONST_1__4 CONSTANT[1].w 64#define CONST_1__8 CONSTANT[1].x 65#define CONST_1__256 CONSTANT[1].y 66 67#pragma bind_symbol(aPosition.xyzw,v0,v0) 68#pragma bind_symbol(aColor.xyzw,v1,v1) 69#pragma bind_symbol(aTexCoord.xyz,v2,v2) 70 71#pragma output_map (position, o0) 72#pragma output_map (color, o1) 73#pragma output_map (texture0, o2.xyz) 74 75#pragma bind_symbol(uProjection,c0,c3) 76#pragma bind_symbol(uModelView,c4,c7) 77 78l_position: 79 m4x4 TEMP_VIEW, aPosition, MATRIX_ModelView 80 mov TEMP_POS, MATRIX_Proj2 81 add TEMP_POS, TEMP_POS, MATRIX_Proj3 82 mul TEMP_POS, TEMP_POS, -CONST_HALF 83 dp4 vPosition.x, TEMP_VIEW, MATRIX_Proj0 84 dp4 vPosition.y, TEMP_VIEW, MATRIX_Proj1 85 dp4 vPosition.z, TEMP_VIEW, TEMP_POS 86 dp4 vPosition.w, TEMP_VIEW, MATRIX_Proj3 87 ret 88 nop 89 90main: 91 call l_position 92 mov o1, aColor 93 mov o2, aTexCoord.xyxy 94 end 95endmain: 96 97