Skip to content

Latest commit

 

History

History
245 lines (193 loc) · 7.18 KB

Readme.md

File metadata and controls

245 lines (193 loc) · 7.18 KB

Pavailion Nine Gpx Interface

Dynamic Memory

Dynamic Memory(DM) is a global memory used in pipeline shader processing, it likes UBO(uniform buffer object) in OpenGL, this object memory content could dynamically mutate during pipeline execution flow safely.
gpx::runtime::register_dynamic_memory could create one Dynamic Memory object.

Vertices Viewer

Vertices Viewer(VV) is a vertices object in p9 gpx, it present a group of vertices of multi vertex types.
gpx::runtime::register_vertices_viewer could create one Vertices Viewer object.

Texture Viewer

Texture Viewer(TV) is a texture object in p9 gpx, it present a texture picture in memory.
gpx::runtime::register_texture_viewer could create one Texture Viewer object.

Runtime

Runtime is core of Gpx, execute main logic flow for Graphics processing.
gpx::runtime is base type of multi-implementation class.


  • Runtime Basic Interface

static ref<gpx::runtime::runtime> gpx::runtime::build(const gpx::runtime_desc& desc)

build a core runtime and get reference to it.

vector<string> gpx::runtime::list_device()

get a list of usable physical device name.

boole gpx::runtime::init(const string& preferred_device_name = "")

init a runtime core which is built already, input preferred_device_name running renderring job, or let runtime auto select highest-performance device.

boole gpx::runtime::uninit()

uninit a runtime which is already inited.

  • Runtime Window Interface

ref<gpx::window> gpx::runtime::build_window(const gpx::window_desc& desc)

build a window and get reference to it.

boole gpx::runtime::remove_window(const string& window_name)

remove a window by window name.

ref<gpx::window> gpx::runtime::get_window(const string& window_name)

get a window reference by window name.

  • Runtime Shader Interface

ref<gpx::shader> gpx::runtime::build_shader(const gpx::shader_desc& desc)

build a shader and get reference to it.

  • Runtime Dynamic Memory Interface

boole gpx::runtime::register_dynamic_memory(const gpx::dynamic_memory_desc& desc)

build a dynamic memory and get reference to it.

boole gpx::runtime::unregister_dynamic_memory(const string& dynamic_memory)

destroy a registered dynamic memory which is not used anymore.

boole gpx::runtime::update_dynamic_memory(const string& dynamic_memory, void* src)

update a dynamic memory content, input a pointer of source buffer.

boole gpx::runtime::setup_pipeline_dynamic_memory(const string& pipeline, const vector<string>& dm_vec)

setup dynamic memory list for specific pipeline.

  • Runtime Texture Viewer Interface

boole gpx::runtime::register_texture_viewer(const gpx::texture_viewer_desc& desc)

build a texture viewer and get reference to it.

boole gpx::runtime::unregister_texture_viewer(const string& texture_viewer)

destroy a texture viewer.

boole gpx::runtime::load_texture_viewer(const string& texture_viewer)

load texture resource to Gpu memory.

boole gpx::runtime::unload_texture_viewer(const string& texture_viewer)

unload texture resource from Gpu memory.

boole gpx::runtime::update_pipeline_texture_viewer(const string& pipeline_name, const vector<string>& viewers)

setup or update texture viewer list for specific pipeline, this function can be could when pipeline running, input texture viewer must be loaded already

  • Runtime Vertices Viewer Interface

boole gpx::runtime::register_vertices_viewer(const gpx::vertices_viewer_desc& desc)

build a vertices viewer and get reference to it.

boole gpx::runtime::unregister_vertices_viewer(const string& vertices_viewer)

destroy a vertices viewer.

boole gpx::runtime::load_vertices_viewer(const string& vertices_viewer)

load vertices resource to Gpu memory.

boole gpx::runtime::unload_vertices_viewer(const string& vertices_viewer)

unload vertices resource from Gpu memory.

boole gpx::runtime::setup_pipeline_vertices_viewer(const string& pipeline_name, const vector<string>& viewers)

setup vertices viewer list for specific pipeline, these vertices viewer are loaded already

  • Runtime Pipeline Interface

boole gpx::runtime::register_pipeline(const gpx::pipeline_desc& desc)

build a pipeline.

boole gpx::runtime::unregister_pipeline(const string& pipeline_name)

destroy a pipeline.

boole gpx::runtime::load_pipeline_resource(const string& pipeline_name)

load all pipeline resources, gpx::runtime::setup_pipeline_dynamic_memory, gpx::runtime::update_pipeline_texture_viewer, gpx::runtime::setup_pipeline_vertices_viewer are supposed to setup this pipeline before this function is called.

boole gpx::runtime::unload_pipeline_resource(const string& pipeline_name)

unload pipeline resources, setup new resource for this pipeline or load pipeline in the future.

boole gpx::runtime::render(const string& pipeline_name)

do one time renderring process to window.

boole gpx::runtime::wait_render_complete()

wait all pipelines complete renderring.

Window

Window is Os display port handler.
gpx::window is base type of multi-implementation class. gpx::runtime::build_window could create one Window object and get reference to it.


string gpx::window::name()

get window name.

boole gpx::window::start()

start displaying window.

boole gpx::window::stop()

stop displaying window.

boole gpx::window::poll_event()

process window input event.

boole gpx::window::is_running()

tell if a window is running.

Shader

Shader is render shader handler.
gpx::shader is base type of multi-implementation class. gpx::runtime::build_shader could create one Shader object and get reference to it.


boole gpx::shader::load(const string& shader_path)

load a shader to memory,
if shader created by Vulkan runtime, it must be a .spv format file.

boole gpx::shader::unload()

unload a shader from memory.

gpx::shader_type gpx::shader::type()

get a type of shader, including gpx::shader_type::VERTEX, gpx::shader_type::TESSELLATION, gpx::shader_type::GEOMETRY, gpx::shader_type::FRAGMENT.