All other methods

Defines

D3D_HAS_QUADS
d3derr(c, m)
d3d_err(c)

Typedefs

typedef intptr_t main_wnd_f(void*, unsigned, uintptr_t, intptr_t)

Functions

void d3derr_in_device_reset(const char *msg)

Variables

bool dagor_d3d_force_driver_reset
namespace d3d

Enums

enum [anonymous]

Values:

enumerator USAGE_TEXTURE
enumerator USAGE_DEPTH
enumerator USAGE_RTARGET
enumerator USAGE_AUTOGENMIPS
enumerator USAGE_FILTER
enumerator USAGE_BLEND
enumerator USAGE_VERTEXTEXTURE
enumerator USAGE_SRGBREAD
enumerator USAGE_SRGBWRITE
enumerator USAGE_SAMPLECMP
enumerator USAGE_PIXREADWRITE
enumerator USAGE_TILED
enumerator USAGE_UNORDERED
enumerator USAGE_UNORDERED_LOAD

Indicates the format supports unordered loads.

enum [anonymous]

Values:

enumerator CAPFMT_X8R8G8B8
enumerator CAPFMT_R8G8B8
enumerator CAPFMT_R5G6B5
enumerator CAPFMT_X1R5G5B5

Functions

void update_window_mode()
bool init_driver()

initalizes 3d device driver

bool is_inited()

returns true when d3d API is inited

bool init_video(void *hinst, main_wnd_f*, const char *wcname, int ncmdshow, void *&mainwnd, void *renderwnd, void *hicon, const char *title, Driver3dInitCallback *cb)

start up, read cfg, create window, init 3d hard&soft, … if renderwnd!=NULL, mainwnd and renderwnd are used for rendering (when possible) on error, returns false on sucess, return true

void release_driver()

shutdown driver and release all resources

bool fill_interface_table(D3dInterfaceTable &d3dit)

fills function-pointers table for d3d API, or returns false if unsupported

void prepare_for_destroy()

notify driver before window destruction

void window_destroyed(void *hwnd)

notify driver on window destruction

BeforeWindowDestroyedCookie *register_before_window_destroyed_callback(eastl::function<void()> callback)
void unregister_before_window_destroyed_callback(BeforeWindowDestroyedCookie *cookie)
bool device_lost(bool *can_reset_now)

returns true when device is lost; when it is safe to reset device can_reset_now is set with 1 returns false when device is ok

bool reset_device()

performs device reset; returns true if succeded

bool update_screen(bool app_active = true)

flip video pages or copy to screen app_active==false is hint to the driver returns false on error

void wait_for_async_present(bool force = false)

If the update_screen(bool) works asynchronously then under certain conditions it will block the execution until the previously called update_screen(bool) is finished.

Parameters:

force – Even if the internal conditions don’t require the wait, the execution will wait for the present to finish

void gpu_latency_wait()

It blocks the execution until the GPU finishes on going render task for delaying the input sampling and using the most recent user inputs for rendering the next frame.

GPUFENCEHANDLE insert_fence(GpuPipeline gpu_pipeline)
void insert_wait_on_fence(GPUFENCEHANDLE &fence, GpuPipeline gpu_pipeline)
bool set_srgb_backbuffer_write(bool)
bool set_msaa_pass()
bool set_depth_resolve()
bool setgamma(float)
float get_screen_aspect_ratio()
void change_screen_aspect_ratio(float ar)
void *fast_capture_screen(int &w, int &h, int &stride_bytes, int &format)

capture screen to buffer.fast, but not guaranteed many captures can be followed by only one end_fast_capture_screen()

void end_fast_capture_screen()
TexPixel32 *capture_screen(int &w, int &h, int &stride_bytes)

capture screen to TexPixel32 buffer slow, and not 100% guaranted returns NULL on error

void release_capture_buffer()

release buffer used to capture screen

int create_predicate()

conditional rendering. conditional rendering is used to skip rendering of triangles completelyon GPU. the only commands, that would be ignored, if survey fails are DIPs (all commands and states will still be executed), so it is better to use reports to completely skip object rendering max index is defined per platform surveying.

void free_predicate(int id)
bool begin_survey(int id)
void end_survey(int id)
void begin_conditional_render(int id)
void end_conditional_render(int id)
void beginEvent(const char*)
void endEvent()
bool get_vrr_supported()
bool get_vsync_enabled()

returns current state of VSYNC

bool enable_vsync(bool enable)

enables or disables strong VSYNC (flips only on VBLANK); returns true on success

void resource_barrier(ResourceBarrierDesc desc, GpuPipeline gpu_pipeline = GpuPipeline::GRAPHICS)
inline void resummarize_htile(BaseTexture*)
inline void set_esram_layout(const wchar_t*)
inline void unset_esram_layout()
inline void reset_esram_layout()
inline void prefetch_movable_textures()
inline void writeback_movable_textures()

Variables

static constexpr int RENDER_TO_WHOLE_ARRAY = 1023