blob: 5c4bcb266c0b89c4c8c75371d2ae3dc795adc430 [file] [log] [blame]
//
// Copyright (c) 2016 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.
//
// StreamProducerD3DTexture.h: Interface for a D3D11 texture stream producer
#ifndef LIBANGLE_RENDERER_D3D_D3D11_STREAM11_H_
#define LIBANGLE_RENDERER_D3D_D3D11_STREAM11_H_
#include "libANGLE/renderer/StreamProducerImpl.h"
namespace rx
{
class Renderer11;
class StreamProducerD3DTexture : public StreamProducerImpl
{
public:
StreamProducerD3DTexture(Renderer11 *renderer);
~StreamProducerD3DTexture() override;
egl::Error validateD3DTexture(void *pointer,
const egl::AttributeMap &attributes) const override;
void postD3DTexture(void *pointer, const egl::AttributeMap &attributes) override;
egl::Stream::GLTextureDescription getGLFrameDescription(int planeIndex) override;
// Gets a pointer to the internal D3D texture
ID3D11Texture2D *getD3DTexture();
// Gets the slice index for the D3D texture that the frame is in
UINT getArraySlice();
private:
Renderer11 *mRenderer;
ID3D11Texture2D *mTexture;
UINT mArraySlice;
UINT mPlaneOffset;
};
} // namespace rx
#endif // LIBANGLE_RENDERER_D3D_D3D11_STREAM11_H_