1// ---------------------------------------------------------------------------
2//  Project:  NintendoWare
3//  File:     gfx_ParticleGShader.gsh
4//
5//  Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc.  All rights reserved.
6//
7//  These coded instructions, statements, and computer programs contain proprietary
8//  information of Nintendo and/or its licensed developers and are protected by
9//  national and international copyright laws. They may not be disclosed to third
10//  parties or copied or duplicated in any form, in whole or in part, without the
11//  prior written consent of Nintendo.
12//
13//  The content herein is highly confidential and should be handled accordingly.
14//
15//  $Revision: $
16// ---------------------------------------------------------------------------
17
18// �W�I���g���V�F�[�_�w��
19#pragma gs_assemble_as_geometry_shader
20
21//------------------------------------------
22//  Definitions
23//------------------------------------------
24
25// �_�~�[�ň�“��͑������`����
26#pragma bind_symbol(geometry_input_dummy, v0, v0)
27
28// �ʏ�̃W�I���g���f�[�^���[�h0�ł��邽��
29// ���_�V�F�[�_���瑗�o���ꂽ�f�[�^�́A���̓��W�X�^��0���珇�ԂɊi�[�����
30#define in_position   v0
31#define in_quaternion v1
32#define in_view       v2
33#define in_color      v3
34#define in_texcoord   v4
35#define in_texoffset  v5
36#define in_posoffset1 v6
37#define in_posoffset2 v7
38
39#pragma output_map(position, o0)
40#pragma output_map(quaternion, o1)
41#pragma output_map(view, o2)
42#pragma output_map(color, o3)
43#pragma output_map (texture0, o4.xy)
44#pragma output_map (texture1, o5.xy)
45//#pragma output_map (texture2, o6.xy)
46
47#define out_pos  o0
48#define out_quat o1
49#define out_view o2
50#define out_col  o3
51#define out_tex0 o4
52#define out_tex1 o5
53//#define out_tex2 o6
54
55// ���W�X�^
56#define TEMP0 r0
57
58main:
59    // ���_�o�́i���ʁj
60
61    // vertex0
62    mov    TEMP0,           in_position
63    add    TEMP0,           TEMP0,          in_posoffset1
64    mov    out_pos,         TEMP0
65
66    mov    out_quat,        in_quaternion
67    mov    out_view,        in_view
68    mov    out_col,         in_color
69
70    mov    TEMP0,           in_texcoord
71    add    TEMP0.xy,        TEMP0.xy,       in_texoffset.xy
72    add    TEMP0.xy,        TEMP0.xy,       in_texoffset.zw
73    mov    out_tex0,        TEMP0
74    mov    out_tex1,        TEMP0
75//    mov    out_tex2,        TEMP0
76
77    smf    0, 0, 0
78    vout
79
80    // vertex1
81    mov    TEMP0,           in_position
82    add    TEMP0,           TEMP0,          -in_posoffset2
83    mov    out_pos,         TEMP0
84
85    mov    out_quat,        in_quaternion
86    mov    out_view,        in_view
87    mov    out_col,         in_color
88
89    mov    TEMP0,           in_texcoord
90    add    TEMP0.xy,        TEMP0.xy,       in_texoffset.xy
91    mov    out_tex0,        TEMP0
92    mov    out_tex1,        TEMP0
93//    mov    out_tex2,        TEMP0
94
95    smf    0, 0, 1
96    vout
97
98    // vertex2
99    mov    TEMP0,           in_position
100    add    TEMP0,           TEMP0,          in_posoffset2
101    mov    out_pos,         TEMP0
102
103    mov    out_quat,        in_quaternion
104    mov    out_view,        in_view
105    mov    out_col,         in_color
106
107    mov    TEMP0,           in_texcoord
108    add	   TEMP0.xy,        TEMP0.xy,       in_texoffset.zw
109    mov    out_tex0,        TEMP0
110    mov    out_tex1,        TEMP0
111//    mov    out_tex2,        TEMP0
112
113    smf    0, 1, 2
114    vout
115
116    // vertex3
117    mov    TEMP0,           in_position
118    add    TEMP0,           TEMP0,          -in_posoffset1
119    mov    out_pos,         TEMP0
120
121    mov    out_quat,        in_quaternion
122    mov    out_view,        in_view
123    mov    out_col,         in_color
124
125    mov    out_tex0,        in_texcoord
126    mov    out_tex1,        in_texcoord
127//    mov    out_tex2,        in_texcoord
128
129    smf    1, 1, 0
130    vout
131
132    end
133
134endmain:
135