blob: 796a133a1a92019ce5d2e1d475264d48dbdc8089 [file] [log] [blame]
//
// 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.
//
// CLMemoryCL.h: Defines the class interface for CLMemoryCL, implementing CLMemoryImpl.
#ifndef LIBANGLE_RENDERER_CL_CLMEMORYCL_H_
#define LIBANGLE_RENDERER_CL_CLMEMORYCL_H_
#include "libANGLE/renderer/CLMemoryImpl.h"
namespace rx
{
class CLMemoryCL : public CLMemoryImpl
{
public:
CLMemoryCL(const cl::Memory &memory, cl_mem native);
~CLMemoryCL() override;
cl_mem getNative() const;
size_t getSize(cl_int &errorCode) const override;
CLMemoryImpl::Ptr createSubBuffer(const cl::Buffer &buffer,
cl::MemFlags flags,
size_t size,
cl_int &errorCode) override;
private:
const cl_mem mNative;
};
inline cl_mem CLMemoryCL::getNative() const
{
return mNative;
}
} // namespace rx
#endif // LIBANGLE_RENDERER_CL_CLMEMORYCL_H_