Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::Graphics::Device Class Reference

Represents a resource domain whose objects and device contexts can be used together. More...

#include <HWGraphics.h>

Inheritance diagram for Harlinn::Windows::Graphics::Device:
[legend]
Collaboration diagram for Harlinn::Windows::Graphics::Device:
[legend]

Public Types

using Base = Resource
 
- Public Types inherited from Harlinn::Common::Core::Unknown
typedef IUnknown InterfaceType
 

Public Member Functions

void CreateDeviceContext (D2D1_DEVICE_CONTEXT_OPTIONS options, ID2D1DeviceContext **deviceContext) const
 Creates a new device context with no initially assigned target.
 
DeviceContext CreateDeviceContext (D2D1_DEVICE_CONTEXT_OPTIONS options=D2D1_DEVICE_CONTEXT_OPTIONS_NONE) const
 
DeviceContext CreateDeviceContext0 (D2D1_DEVICE_CONTEXT_OPTIONS options) const
 
void CreatePrintControl (IWICImagingFactory *wicFactory, IPrintDocumentPackageTarget *documentTarget, const D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties, ID2D1PrintControl **printControl) const
 Creates an ID2D1PrintControl object that converts Direct2D primitives stored in ID2D1CommandList into a fixed page representation. The print sub-system then consumes the primitives.
 
void CreatePrintControl (IWICImagingFactory *wicFactory, IPrintDocumentPackageTarget *documentTarget, const D2D1_PRINT_CONTROL_PROPERTIES &printControlProperties, ID2D1PrintControl **printControl) const
 
HW_EXPORT void CreatePrintControl (const Imaging::ImagingFactory &wicFactory, const DocumentTarget::PrintDocumentPackageTarget &documentTarget, const D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties, ID2D1PrintControl **printControl) const
 
PrintControl CreatePrintControl (IWICImagingFactory *wicFactory, IPrintDocumentPackageTarget *documentTarget, const D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties=nullptr) const
 
HW_EXPORT PrintControl CreatePrintControl (const Imaging::ImagingFactory &wicFactory, const DocumentTarget::PrintDocumentPackageTarget &documentTarget, const D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties=nullptr) const
 
void SetMaximumTextureMemory (UINT64 maximumTextureMemoryInBytes) const
 Sets the maximum amount of texture memory Direct2D accumulates before it purges the image caches and cached texture allocations.
 
UINT64 GetMaximumTextureMemory () const
 Gets the maximum amount of texture memory to maintain before evicting caches.
 
void ClearResources (UINT32 millisecondsSinceUse=0) const
 Clears all resources that are cached but not held in use by the application through an interface reference.
 
- Public Member Functions inherited from Harlinn::Windows::Graphics::Resource
template<typename T = Factory>
requires std::is_base_of_v< Factory, T>
T GetFactory ()
 
- Public Member Functions inherited from Harlinn::Common::Core::Unknown
constexpr Unknown () noexcept
 
 Unknown (IUnknown *unknown, bool addref=false) noexcept
 
 Unknown (REFIID iid, const Unknown &unknown, bool throwIfNoInterface=true)
 
 Unknown (const Unknown &other) noexcept
 
 Unknown (Unknown &&other) noexcept
 
 ~Unknown () noexcept
 
constexpr operator bool () const noexcept
 
Unknownoperator= (const Unknown &other) noexcept
 
Unknownoperator= (Unknown &&other) noexcept
 
void swap (Unknown &other) noexcept
 
void ResetPtr (IUnknown *other=nullptr, bool addRef=false) noexcept
 
Unknownoperator= (nullptr_t)
 
IUnknown * Detach ()
 
template<typename T >
requires std::is_base_of_v<Unknown, T >
T As () const
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
bool Is () const noexcept
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
ComPtr< TAs () const
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
bool Is () const noexcept
 This function can be used to detect if an object supports a particular COM interface derived from IUnknown.
 
template<typename T = IUnknown>
TGetInterfacePointer () const noexcept
 
bool QueryInterface (REFIID riid, void **itf) const
 Queries a COM object for a pointer to one of its interface; identifying the interface by a reference to its interface identifier (IID). If the COM object implements the interface, then it returns a pointer to that interface after calling IUnknown::AddRef on it.
 
template<typename T >
requires std::is_base_of_v<IUnknown, T>
bool QueryInterface (T **itf) const
 
constexpr bool operator== (const Unknown &other) const noexcept
 
constexpr bool operator!= (const Unknown &other) const noexcept
 
constexpr bool operator== (const IUnknown *other) const noexcept
 
constexpr bool operator!= (const IUnknown *other) const noexcept
 

Additional Inherited Members

- Static Public Member Functions inherited from Harlinn::Common::Core::Unknown
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const CLSID &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const wchar_t *clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromClassId (const WideString &clsid, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const wchar_t *progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromProgId (const WideString &progId, DWORD classContext=CLSCTX_INPROC_SERVER)
 
template<typename T >
requires std::is_base_of_v<Unknown, T>
static T CoCreateInstanceFromDll (const ModuleHandle &dll, const CLSID &clsid)
 
- Protected Attributes inherited from Harlinn::Common::Core::Unknown
IUnknown * unknown_
 

Detailed Description

Represents a resource domain whose objects and device contexts can be used together.

Member Typedef Documentation

◆ Base

Member Function Documentation

◆ ClearResources()

void Harlinn::Windows::Graphics::Device::ClearResources ( UINT32 millisecondsSinceUse = 0) const
inline

Clears all resources that are cached but not held in use by the application through an interface reference.

Parameters
millisecondsSinceUseDiscards only resources that haven't been used for greater than the specified time in milliseconds. The default is 0 milliseconds.

◆ CreateDeviceContext() [1/2]

void Harlinn::Windows::Graphics::Device::CreateDeviceContext ( D2D1_DEVICE_CONTEXT_OPTIONS options,
ID2D1DeviceContext ** deviceContext ) const
inline

Creates a new device context with no initially assigned target.

Parameters
optionsThe options to be applied to the created device context.
deviceContextWhen this method returns, contains the address of a pointer to the new device context.

The new device context will not have a selected target bitmap. The caller must create and select a bitmap as the target surface of the context.

◆ CreateDeviceContext() [2/2]

DeviceContext Harlinn::Windows::Graphics::Device::CreateDeviceContext ( D2D1_DEVICE_CONTEXT_OPTIONS options = D2D1_DEVICE_CONTEXT_OPTIONS_NONE) const
inlinenodiscard

◆ CreateDeviceContext0()

DeviceContext Harlinn::Windows::Graphics::Device::CreateDeviceContext0 ( D2D1_DEVICE_CONTEXT_OPTIONS options) const
inline

◆ CreatePrintControl() [1/5]

void Harlinn::Windows::Graphics::Device::CreatePrintControl ( const Imaging::ImagingFactory & wicFactory,
const DocumentTarget::PrintDocumentPackageTarget & documentTarget,
const D2D1_PRINT_CONTROL_PROPERTIES * printControlProperties,
ID2D1PrintControl ** printControl ) const

◆ CreatePrintControl() [2/5]

PrintControl Harlinn::Windows::Graphics::Device::CreatePrintControl ( const Imaging::ImagingFactory & wicFactory,
const DocumentTarget::PrintDocumentPackageTarget & documentTarget,
const D2D1_PRINT_CONTROL_PROPERTIES * printControlProperties = nullptr ) const

◆ CreatePrintControl() [3/5]

void Harlinn::Windows::Graphics::Device::CreatePrintControl ( IWICImagingFactory * wicFactory,
IPrintDocumentPackageTarget * documentTarget,
const D2D1_PRINT_CONTROL_PROPERTIES & printControlProperties,
ID2D1PrintControl ** printControl ) const
inline

◆ CreatePrintControl() [4/5]

void Harlinn::Windows::Graphics::Device::CreatePrintControl ( IWICImagingFactory * wicFactory,
IPrintDocumentPackageTarget * documentTarget,
const D2D1_PRINT_CONTROL_PROPERTIES * printControlProperties,
ID2D1PrintControl ** printControl ) const
inline

Creates an ID2D1PrintControl object that converts Direct2D primitives stored in ID2D1CommandList into a fixed page representation. The print sub-system then consumes the primitives.

Parameters
wicFactoryA WIC imaging factory.
documentTargetThe target print job for this control.
printControlPropertiesThe options to be applied to the print control.
printControlWhen this method returns, contains the address of a pointer to an ID2D1PrintControl object.

◆ CreatePrintControl() [5/5]

PrintControl Harlinn::Windows::Graphics::Device::CreatePrintControl ( IWICImagingFactory * wicFactory,
IPrintDocumentPackageTarget * documentTarget,
const D2D1_PRINT_CONTROL_PROPERTIES * printControlProperties = nullptr ) const
inline

◆ GetMaximumTextureMemory()

UINT64 Harlinn::Windows::Graphics::Device::GetMaximumTextureMemory ( ) const
inline

Gets the maximum amount of texture memory to maintain before evicting caches.

Returns
The maximum amount of texture memory in bytes.

◆ SetMaximumTextureMemory()

void Harlinn::Windows::Graphics::Device::SetMaximumTextureMemory ( UINT64 maximumTextureMemoryInBytes) const
inline

Sets the maximum amount of texture memory Direct2D accumulates before it purges the image caches and cached texture allocations.

Parameters
maximumTextureMemoryInBytesThe new maximum texture memory in bytes.

Direct2D may exceed the maximum texture memory you set with this method for a single frame if necessary to render the frame.


The documentation for this class was generated from the following files: