37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
/*
|
|
* Copyright (C) 2017-2020 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
#include "opencl/source/sharings/d3d/d3d_sharing.h"
|
|
|
|
namespace NEO {
|
|
class Context;
|
|
class Image;
|
|
|
|
template <typename D3D>
|
|
class D3DTexture : public D3DSharing<D3D> {
|
|
typedef typename D3D::D3DTexture2dDesc D3DTexture2dDesc;
|
|
typedef typename D3D::D3DTexture3dDesc D3DTexture3dDesc;
|
|
typedef typename D3D::D3DTexture2d D3DTexture2d;
|
|
typedef typename D3D::D3DTexture3d D3DTexture3d;
|
|
typedef typename D3D::D3DResource D3DResource;
|
|
|
|
public:
|
|
~D3DTexture() override = default;
|
|
|
|
static Image *create2d(Context *context, D3DTexture2d *d3dTexture, cl_mem_flags flags, cl_uint subresource, cl_int *retCode);
|
|
|
|
static Image *create3d(Context *context, D3DTexture3d *d3dTexture, cl_mem_flags flags, cl_uint subresource, cl_int *retCode);
|
|
|
|
static const ClSurfaceFormatInfo *findYuvSurfaceFormatInfo(DXGI_FORMAT dxgiFormat, ImagePlane imagePlane, cl_mem_flags flags);
|
|
|
|
protected:
|
|
D3DTexture(Context *context, D3DResource *d3dTexture, cl_uint subresource, D3DResource *textureStaging, bool sharedResource)
|
|
: D3DSharing(context, d3dTexture, textureStaging, subresource, sharedResource){};
|
|
};
|
|
} // namespace NEO
|