aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/3ds/shader.v.pica
blob: 2d1898562288b0c669380568feff184f30f54321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
;* ScummVM - Graphic Adventure Engine
;*
;* ScummVM is the legal property of its developers, whose names
;* are too numerous to list here. Please refer to the COPYRIGHT
;* file distributed with this source distribution.
;*
;* This program is free software; you can redistribute it and/or
;* modify it under the terms of the GNU General Public License
;* as published by the Free Software Foundation; either version 2
;* of the License, or (at your option) any later version.
;*
;* This program is distributed in the hope that it will be useful,
;* but WITHOUT ANY WARRANTY; without even the implied warranty of
;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;* GNU General Public License for more details.
;*
;* You should have received a copy of the GNU General Public License
;* along with this program; if not, write to the Free Software
;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
;*

; Uniforms
.fvec projection[4], modelView[4]

; Constants
.constf myconst(0.0, 1.0, -1.0, 0.1)
.alias  zeros myconst.xxxx ; Vector full of zeros
.alias  ones  myconst.yyyy ; Vector full of ones

; Outputs
.out outpos position
.out outtex texcoord0

; Inputs (defined as aliases for convenience)
.alias inpos v0
.alias intex v1

.proc main
	; Force the w component of inpos to be 1.0
	mov r0.xyz, inpos
	mov r0.w,   ones
	
	; r1 = modelView * inpos
	dp4 r1.x, modelView[0], r0
	dp4 r1.y, modelView[1], r0
	dp4 r1.z, modelView[2], r0
	dp4 r1.w, modelView[3], r0

	; outpos = projection * r1
	dp4 outpos.x, projection[0], r1
	dp4 outpos.y, projection[1], r1
	dp4 outpos.z, projection[2], r1
	dp4 outpos.w, projection[3], r1

 	mov outtex, intex

	end
.end