blob: 376238c6411491bc0fa27e613375b1b79dbd86d8 [file] [log] [blame]
/*
* MVKWatermarkShaderSource.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
/** This file contains static source code for the Watermark shaders. */
static const char* __watermarkShaderSource = " \n\
#include <metal_stdlib> \n\
using namespace metal; \n\
\n\
typedef struct { \n\
float4x4 mvpMtx; \n\
float4 color; \n\
} Uniforms; \n\
\n\
typedef struct { \n\
float2 a_position [[attribute(0)]]; \n\
float2 a_texCoord [[attribute(1)]]; \n\
} Attributes; \n\
\n\
typedef struct { \n\
float4 v_position [[position]]; \n\
float2 v_texCoord; \n\
float4 v_fragColor; \n\
} Varyings; \n\
\n\
vertex Varyings watermarkVertex(Attributes attributes [[stage_in]], \n\
constant Uniforms& uniforms [[ buffer(0) ]]) { \n\
Varyings varyings; \n\
varyings.v_position = uniforms.mvpMtx * float4(attributes.a_position, 0.0, 1.0); \n\
varyings.v_fragColor = uniforms.color; \n\
varyings.v_texCoord = attributes.a_texCoord; \n\
return varyings; \n\
} \n\
\n\
fragment float4 watermarkFragment(Varyings varyings [[stage_in]], \n\
texture2d<float> texture [[ texture(0) ]], \n\
sampler sampler [[ sampler(0) ]]) { \n\
return varyings.v_fragColor * texture.sample(sampler, varyings.v_texCoord); \n\
}; \n\
";