// // Copyright 2023 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. // // renderermtl_utils: // Helper methods pertaining to the Metal backend. // #ifndef LIBANGLE_RENDERER_METAL_RENDERERMTL_UTILS_H_ #define LIBANGLE_RENDERER_METAL_RENDERERMTL_UTILS_H_ #include #include #include #include "GLSLANG/ShaderLang.h" #include "common/angleutils.h" #include "common/utilities.h" #include "libANGLE/angletypes.h" namespace rx { namespace mtl { template struct SetFloatUniformMatrixMetal { static void Run(unsigned int arrayElementOffset, unsigned int elementCount, GLsizei countIn, GLboolean transpose, const GLfloat *value, uint8_t *targetData); }; // Helper method to de-tranpose a matrix uniform for an API query, Metal Version void GetMatrixUniformMetal(GLenum type, GLfloat *dataOut, const GLfloat *source, bool transpose); template void GetMatrixUniformMetal(GLenum type, NonFloatT *dataOut, const NonFloatT *source, bool transpose); } // namespace mtl } // namespace rx #endif