// GENERATED FILE - DO NOT EDIT. // Generated by gen_vk_internal_shaders.py. // // Copyright 2018 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // shaders/gen/ImageCopy.frag.00000024.inc: // Pre-generated shader for the ANGLE Vulkan back-end. #pragma once constexpr uint8_t kImageCopy_frag_00000024[] = …; // Generated from: // // #version 450 core // // #extension GL_EXT_samplerless_texture_functions : require // // layout(set = 0, binding = 0)uniform utexture2D src; // layout(location = 0)out ivec4 dst; // // layout(push_constant)uniform PushConstants { // // ivec2 srcOffset; // ivec2 dstOffset; // int srcMip; // int srcLayer; // // bool flipX; // bool flipY; // // bool premultiplyAlpha; // bool unmultiplyAlpha; // // bool dstHasLuminance; // bool dstIsAlpha; // // bool srcIsSRGB; // bool dstIsSRGB; // // int dstDefaultChannelsMask; // bool rotateXY; // } params; // // void main() // { // ivec2 dstSubImageCoords = ivec2(gl_FragCoord . xy)- params . dstOffset; // // ivec2 srcSubImageCoords = dstSubImageCoords; // // if(params . flipX) // { // srcSubImageCoords . x = - srcSubImageCoords . x; // } // if(params . flipY) // { // srcSubImageCoords . y = - srcSubImageCoords . y; // } // if(params . rotateXY) // { // srcSubImageCoords . xy = srcSubImageCoords . yx; // } // // uvec4 srcValue = texelFetch(src, params . srcOffset + srcSubImageCoords, params . srcMip); // // if(params . premultiplyAlpha) // { // srcValue . rgb *= srcValue . a; // } // else if(params . unmultiplyAlpha && srcValue . a > 0) // { // srcValue . rgb /= srcValue . a; // } // // ivec4 dstValue = ivec4(srcValue); // // if(params . dstHasLuminance) // { // dstValue . rg = dstValue . ra; // } // else if(params . dstIsAlpha) // { // dstValue . r = dstValue . a; // } // else // { // int defaultChannelsMask = params . dstDefaultChannelsMask; // if((defaultChannelsMask & 2)!= 0) // { // dstValue . g = 0; // } // if((defaultChannelsMask & 4)!= 0) // { // dstValue . b = 0; // } // if((defaultChannelsMask & 8)!= 0) // { // dstValue . a = 1; // } // } // // dst = dstValue; // }