1// ---------------------------------------------------------------------------
2//  Project:  NintendoWare
3//  File:     CalcTexCoord1.vsh
4//
5//  Copyright (C)2009-2010 Nintendo Co., Ltd.  All rights reserved.
6//
7//  These coded instructions, statements, and computer programs contain
8//  proprietary information of Nintendo of America Inc. and/or Nintendo
9//  Company Ltd., and are protected by Federal copyright law.  They may
10//  not be disclosed to third parties or copied or duplicated in any form,
11//  in whole or in part, without the prior written consent of Nintendo.
12//
13//  $Revision:$
14// ---------------------------------------------------------------------------
15
16#include "ShaderConfig.h"
17#include "VertexShader.h"
18
19//------------------------------------------
20// �e�N�X�`�����W�v�Z
21//------------------------------------------
22// �e�N�X�`�����W1
23l_calc_texcoord1:
24    mov     TEMP0.xy,   nw_texture_coordinate._Y
25    ifb nw_uv_mapping_position1 // UV�}�b�s���O
26#ifdef NW_FIXED_TEX_SORUCE // �e�N�X�`���\�[�X���Œ�Ŏ擾���܂��B
27        mul     TEMP_TEX.xy,       nw_texcoord1.xy,   nw_attribute_scale1._Y
28        mov     TEMP_TEX.zw,        CONST_0_0_1_1
29#else
30        call    l_get_texcoord_source
31#endif
32        dp4     TRAN_TEX1.x,        TEMP_TEX,          nw_texture_matrix1[0]._XYWZ
33        dp4     TRAN_TEX1.y,        TEMP_TEX,          nw_texture_matrix1[1]._XYWZ
34        mov     TRAN_TEX1.zw,       TEMP_TEX.zw
35        mov     o_TexCoord1,        TRAN_TEX1
36    else
37        ifb nw_is_texture1_enabled
38            cmp     EQ, EQ,     TEMP0.xy,       CONST_3_4_4_4
39            mov     TEMP_TEX.zw,        CONST_0_0_1_1
40            mov     TRAN_TEX1.zw,       TEMP_TEX.zw
41            ifc 0, 0, COND_MODE_AND // ���e�}�b�s���O
42                mov     TEMP_TEX,           WRLD_POSI
43                dp4     TRAN_TEX1.x,        TEMP_TEX,          nw_texture_matrix1[0]._XYZW
44                dp4     TRAN_TEX1.y,        TEMP_TEX,          nw_texture_matrix1[1]._XYZW
45                dp4     TRAN_TEX1.z,        TEMP_TEX,          nw_texture_matrix1[2]._XYZW
46                rcp     TEMP_TEX.w,         TRAN_TEX1.z
47                mul     TRAN_TEX1.xy,       TRAN_TEX1.xy,      TEMP_TEX.w
48                add     TRAN_TEX1.xy,       TRAN_TEX1.xy,      nw_texture_translate.zw
49            else
50                call    l_gen_texcoord_sphere_reflection
51                dp4     TRAN_TEX1.x,        TEMP_TEX,          nw_texture_matrix1[0]._XYZW
52                dp4     TRAN_TEX1.y,        TEMP_TEX,          nw_texture_matrix1[1]._XYZW
53            endif
54            // �o�̓��W�X�^�ɂ͑S�ẴR���|�[�l���g�ɏ������݂��s���K�v������܂��B
55            mov     o_TexCoord1,        TRAN_TEX1
56        else
57            mov     o_TexCoord1,        CONST_0
58        endif
59        nop
60    endif
61    nop
62    ret
63