SDL/src/render/n3ds/shader_src/shader.v.pica

60 lines
1.7 KiB
Plaintext

; Simple DirectMedia Layer
; Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
;
; This software is provided 'as-is', without any express or implied
; warranty. In no event will the authors be held liable for any damages
; arising from the use of this software.
;
; Permission is granted to anyone to use this software for any purpose,
; including commercial applications, and to alter it and redistribute it
; freely, subject to the following restrictions:
;
; 1. The origin of this software must not be misrepresented; you must not
; claim that you wrote the original software. If you use this software
; in a product, an acknowledgment in the product documentation would be
; appreciated but is not required.
; 2. Altered source versions must be plainly marked as such, and must not be
; misrepresented as being the original software.
; 3. This notice may not be removed or altered from any source distribution.
; Uniforms
.fvec projection[4]
; Constants
.constf const(0.0, 1.0, 0.00392156862745098, 0.5)
.alias ZEROS const.xxxx ; Vector full of zeros
.alias ONES const.yyyy ; Vector full of ones
.alias HALFS const.wwww ; Vector full of 0.5s
; Outputs
.out outpos position
.out outclr color
.out outtc0 texcoord0
; Inputs (defined as aliases for convenience)
.alias inpos v0
.alias inclr v1
.alias intc0 v2
.proc main
; Force the z and w components of inpos to be 0.5 and 1.0 respectively
mov r0.xy, inpos
mov r0.z, HALFS
mov r0.w, ONES
; outpos = projectionMatrix * inpos
dp4 outpos.x, projection[0], r0
dp4 outpos.y, projection[1], r0
dp4 outpos.z, projection[2], r0
dp4 outpos.w, projection[3], r0
; outtc0 = intc0
mov outtc0, intc0
; Normalize color by multiplying by 1 / 255
mul outclr, const.z, inclr
; We're finished
end
.end