51 baris
1.3 KiB
C++
51 baris
1.3 KiB
C++
//
|
|
// Copyright (c) 2008 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
|
|
#ifndef INTEROP_H_
|
|
#define INTEROP_H_
|
|
|
|
namespace amd {
|
|
|
|
//! Forward declarations of interop classes
|
|
class GLObject;
|
|
class BufferGL;
|
|
|
|
#ifdef _WIN32
|
|
class D3D10Object;
|
|
class D3D11Object;
|
|
class D3D9Object;
|
|
#endif //_WIN32
|
|
|
|
//! Base object providing common map/unmap interface for interop objects
|
|
class InteropObject
|
|
{
|
|
public:
|
|
//! Virtual destructor to get rid of linux warning
|
|
virtual ~InteropObject() {}
|
|
|
|
// Static cast functions for interop objects
|
|
virtual GLObject* asGLObject() { return NULL; }
|
|
virtual BufferGL* asBufferGL() { return NULL; }
|
|
|
|
#ifdef _WIN32
|
|
virtual D3D10Object* asD3D10Object() { return NULL; }
|
|
virtual D3D11Object* asD3D11Object() { return NULL; }
|
|
virtual D3D9Object* asD3D9Object() { return NULL; }
|
|
#endif //_WIN32
|
|
|
|
// On acquire copy data from original resource to shared resource
|
|
virtual bool copyOrigToShared() { return true; }
|
|
// On release copy data from shared copy to the original resource
|
|
virtual bool copySharedToOrig() { return true; }
|
|
|
|
//! Mapping functions for interop objects
|
|
virtual bool mapExtObjectInCQThread() { return true; }
|
|
virtual bool unmapExtObjectInCQThread() { return true; }
|
|
};
|
|
|
|
} // namespace amd
|
|
|
|
#endif //!INTEROP_H_
|
|
|