mirror of https://github.com/libsdl-org/SDL.git
60 lines
1.7 KiB
Plaintext
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
|