// // Copyright 2021 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. // // CLtypes.h: Defines common types for the OpenCL support in ANGLE. #ifndef LIBANGLE_CLTYPES_H_ #define LIBANGLE_CLTYPES_H_ #include "libANGLE/CLBitField.h" #include "libANGLE/CLRefPointer.h" #include "libANGLE/Debug.h" #include "common/PackedCLEnums_autogen.h" #include "common/angleutils.h" // Include frequently used standard headers #include #include #include #include #include #include #include #include #define ANGLE_CL_TRY(expression) \ do \ { \ const cl_int _errorCode = expression; \ if (_errorCode != CL_SUCCESS) \ { \ return _errorCode; \ } \ } while (0) namespace cl { class Buffer; class CommandQueue; class Context; class Device; class Event; class Image; class Kernel; class Memory; class Object; class Platform; class Program; class Sampler; using BufferPtr = RefPointer; using CommandQueuePtr = RefPointer; using ContextPtr = RefPointer; using DevicePtr = RefPointer; using EventPtr = RefPointer; using KernelPtr = RefPointer; using MemoryPtr = RefPointer; using PlatformPtr = RefPointer; using ProgramPtr = RefPointer; using SamplerPtr = RefPointer; using BufferPtrs = std::vector; using DevicePtrs = std::vector; using EventPtrs = std::vector; using KernelPtrs = std::vector; using MemoryPtrs = std::vector; using PlatformPtrs = std::vector; using ProgramPtrs = std::vector; struct ImageDescriptor { MemObjectType type; size_t width; size_t height; size_t depth; size_t arraySize; size_t rowPitch; size_t slicePitch; cl_uint numMipLevels; cl_uint numSamples; }; } // namespace cl #endif // LIBANGLE_CLTYPES_H_