#ifndef MOZILLA_GFX_DXTEXTUREINTEROP_H_
#define MOZILLA_GFX_DXTEXTUREINTEROP_H_
#include "nvpr/GL.h"
#include "Windows.h"
#include <mozilla/RefPtr.h>
namespace mozilla {
namespace gfx {
class DXTextureInteropNVpr : public RefCounted<DXTextureInteropNVpr> {
public:
static TemporaryRef<DXTextureInteropNVpr> Create(void* aDX, void* aDXTexture)
{
bool success;
RefPtr<DXTextureInteropNVpr> interop =
new DXTextureInteropNVpr(aDX, aDXTexture, success);
return success ? interop.forget() : nullptr;
}
~DXTextureInteropNVpr();
GLuint Lock();
void Unlock();
private:
DXTextureInteropNVpr(void* aDX, void* aDXTexture, bool& aSuccess);
HANDLE mDXInterop;
GLuint mTextureId;
HANDLE mTextureInterop;
};
}
}
#endif