{"id":19856540,"url":"https://github.com/vsg-dev/vsgxchange","last_synced_at":"2025-04-05T09:08:03.568Z","repository":{"id":38419116,"uuid":"192339807","full_name":"vsg-dev/vsgXchange","owner":"vsg-dev","description":"Utility library for converting data+materials to/from VulkanSceneGraph","archived":false,"fork":false,"pushed_at":"2025-03-04T13:23:47.000Z","size":1602,"stargazers_count":76,"open_issues_count":2,"forks_count":44,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-29T08:08:13.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsg-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-17T12:09:13.000Z","updated_at":"2025-02-27T21:11:40.000Z","dependencies_parsed_at":"2024-12-16T18:35:12.355Z","dependency_job_id":"b1889bdd-61c8-4d53-b1cb-3a8e2ec11612","html_url":"https://github.com/vsg-dev/vsgXchange","commit_stats":{"total_commits":678,"total_committers":21,"mean_commits":"32.285714285714285","dds":"0.14896755162241893","last_synced_commit":"2f6b4cf9b5e3d543470d9375aac09a3ecb444f7e"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsg-dev%2FvsgXchange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsg-dev%2FvsgXchange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsg-dev%2FvsgXchange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsg-dev%2FvsgXchange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsg-dev","download_url":"https://codeload.github.com/vsg-dev/vsgXchange/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312081,"owners_count":20918344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T14:15:48.884Z","updated_at":"2025-04-05T09:08:03.513Z","avatar_url":"https://github.com/vsg-dev.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vsgXchange\nUtility library for converting 3rd party images, models and fonts formats to/from [VulkanSceneGraph](https://github.com/vsg-dev/VulkanSceneGraph)\n\n## Provides builtin support for:\n\nvsgXchange contains source code that can directly read a [range of shader and image formats](#file-formats-supported-by-built-in-readerwriters).\n* reading KTX, DDS, JPEG, PNG, GIF, BMP, TGA and PSD image formats as vsg::Data objects.\n* reading GLSL shader files as vsg::ShaderStage objects.\n* reading and writing SPIRV shader files as vsg::ShaderModule.\n* writing vsg::Object of all types to .cpp source files that can be directly compiled into applications.\n\n## Optional support:\n\ncmake automatically finds which dependencies are available and builds the appropriate components:\n\n* [reading font formats](#font-file-formats-supported-by-optional-vsgxchangefreetype) TrueType etc. using [Freetype](https://www.freetype.org/) as vsg::Font.\n* [reading image \u0026 DEM formats](#image-formats-supported-by-optional-vsgxchangegdal) .exr using [OpenEXR](https://www.openexr.com/), and GeoTiff etc. using [GDAL](https://gdal.org/) as vsg::Data.\n* [reading 3d model formats](#model-formats-supported-by-optional-vsgxchangeassimp)  GLTF, OBJ, 3DS, LWO etc. using Assimp as vsg::Node.\n* [reading data over the internet](#protocols-supported-by-optional-vsgxchangecurl) reading image and model files from http:// and https:// using [libcurl](https://curl.se/libcurl/)\n* [reading image and 3d model formats](#image-and-model-formats-supported-by-optional-vsgxchangeosg) OpenSceneGraph, OpenFlight etc. using [osg2vsg](https://github.com/vsg-dev/osg2vsg)/[OpenSceneGraph](http://www.openscenegraph.org/).\n\n## Required dependencies:\n\n* [VulkanSDK](https://www.lunarg.com/vulkan-sdk/)\n* [VulkanSceneGraph](https://github.com/vsg-dev/VulkanSceneGraph)\n* [CMake](https://cmake.org/) minimum version 3.7\n* C++17 capable compiler\n\n## Optional dependencies:\n\n* [Freetype](https://www.freetype.org/)\n* [GDAL](https://gdal.org/)\n* [Assimp](https://www.assimp.org/), [Assimp on github](https://github.com/assimp/assimp)\n* [libcurl](https://curl.se/libcurl/)\n* [OpenEXP](https://www.openexr.com/)\n* [osg2vsg](https://github.com/vsg-dev/osg2vsg)\n\n## Building vsgXchange:\n\n### Unix:\n\nIn source build:\n\n    cmake .\n    make -j 8\n    sudo make install\n\n### Windows:\n\nUsing cmake:\n```\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n```\n\n## How to use vsgXchange in your own applications\n\nCMake additions:\n\n    find_package(vsgXchange)\n\n    target_link_libraries(myapplication vsgXchange::vsgXchange)\n\nC++ additions:\n\n    #include \u003cvsgXchange/all.h\u003e\n\n    ...\n\n    // assign a composite ReaderWriter that includes all supported formats\n    auto options = vsg::Options::create(vsgXchange::all::create());\n\n    // pass in the options that provide the link to the ReaderWriter of interest.\n    auto object = vsg::read(\"myimage.dds\", options);\n\n    // read file and cast to vsg::Data if possible, returns vsg::ref_ptr\u003cvsg::Data\u003e\n    auto image = vsg::read_cast\u003cvsg::Data\u003e(\"myimage.dds\", options);\n\n    // read file and cast to vsg::Node if possible, returns vsg::ref_ptr\u003cvsg::Node\u003e\n    auto model = vsg::read_cast\u003cvsg::Node\u003e(\"mymodel.gltf\", options);\n\n    // write file\n    vsg::write(model, \"mymodel.vsgb\", options);\n\n## How to use vsgconv utility that is built as part of vsgXchange\n\nTo convert shaders to SPIRV, native VSG format or source file:\n\n    vsgconv myshader.vert myshader.vsgb\n    vsgconv myshader.frag myshader.spv\n    vsgconv myshader.comp myshader_comp.cpp\n\nTo convert 3rd party image formats to native VSG format or source file:\n\n    vsgconv image.jpg image.vsgb\n    vsgconv image.jpg image.cpp\n\nTo convert 3rd party model formats to native VSG format or source file:\n\n    vsgconv mymodel.obj mymodel.vsgt # convert OBJ model to VSG ascii text format (requires Assimp)\n    vsgconv mymodel.gltif mymodel.vsgt # convert GLTF model to VSG ascii text format  (requires Assimp)\n    vsgconv mymodel.osgb mymodel.vsgb # convert OSG binary format to VSG binary format (requires osg2vsg/OpenSceneGraph)\n    vsgconv mymodel.flt mymodel.vsgb # convert OpenFlight format to VSG binary format (requires osg2vsg/OpenSceneGraph)\n    vsgconv mymodel.vsgb mymodel.cpp # convert native VSG binary format to source file.\n\nTo convert an OpenSceneGraph Paged database (requires osg2vsg/OpenSceneGraph):\n\n    vsgconv OsgDatabase/earth.osgb VsgDatabase/earth.vsgb -l 30 # convert up to level 30\n\nOptions specific to a ReaderWriter are specified on the commandline using two dashes:\n\n    vsgconv FlightHelmet.gltf helmet.vsgb --discard_empty_nodes false\n\n## File formats supported by all built in ReaderWriters\n\n    vsgXchange::all\n        vsgXchange::curl provides support for 0 extensions, and 2 protocols.\n            Protocols       Supported ReaderWriter methods\n            ----------      ------------------------------\n            http            read(vsg::Path, ..)\n            https           read(vsg::Path, ..)\n\n            vsg::Options::Value  type\n            -------------------  ----\n            CURLOPT_SSL_OPTIONS  uint32_t\n\n        vsg::VSG provides support for 2 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .vsgb           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .vsgt           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n\n        vsg::spirv provides support for 1 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .spv            read(vsg::Path, ..) write(vsg::Path, ..)\n\n        vsg::glsl provides support for 16 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .comp           read(vsg::Path, ..) write(vsg::Path, ..)\n            .frag           read(vsg::Path, ..) write(vsg::Path, ..)\n            .geom           read(vsg::Path, ..) write(vsg::Path, ..)\n            .glsl           read(vsg::Path, ..) write(vsg::Path, ..)\n            .hlsl           read(vsg::Path, ..) write(vsg::Path, ..)\n            .mesh           read(vsg::Path, ..) write(vsg::Path, ..)\n            .rahit          read(vsg::Path, ..) write(vsg::Path, ..)\n            .rcall          read(vsg::Path, ..) write(vsg::Path, ..)\n            .rchit          read(vsg::Path, ..) write(vsg::Path, ..)\n            .rgen           read(vsg::Path, ..) write(vsg::Path, ..)\n            .rint           read(vsg::Path, ..) write(vsg::Path, ..)\n            .rmiss          read(vsg::Path, ..) write(vsg::Path, ..)\n            .task           read(vsg::Path, ..) write(vsg::Path, ..)\n            .tesc           read(vsg::Path, ..) write(vsg::Path, ..)\n            .tese           read(vsg::Path, ..) write(vsg::Path, ..)\n            .vert           read(vsg::Path, ..) write(vsg::Path, ..)\n\n        vsg::txt provides support for 7 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .bat            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .json           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md             read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .sh             read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .text           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .txt            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .xml            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n\n        vsgXchange::cpp provides support for 1 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .cpp            write(vsg::Path, ..)\n\n        vsgXchange::stbi provides support for 9 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .bmp            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .jpe            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .jpeg           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .jpg            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .pgm            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .png            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n            .ppm            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .psd            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .tga            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n\n            vsg::Options::Value  type\n            -------------------  ----\n            image_format         vsg::CoordinateSpace\n            jpeg_quality         int\n\n        vsgXchange::dds provides support for 1 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .dds            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n\n        vsgXchange::ktx provides support for 2 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .ktx            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ktx2           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n\n        vsgXchange::openexr provides support for 1 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .exr            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..) write(vsg::Path, ..) write(std::ostream, ..)\n\n        vsgXchange::freetype provides support for 11 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .cef            read(vsg::Path, ..)\n            .cff            read(vsg::Path, ..)\n            .cid            read(vsg::Path, ..)\n            .fnt            read(vsg::Path, ..)\n            .fon            read(vsg::Path, ..)\n            .otf            read(vsg::Path, ..)\n            .pfa            read(vsg::Path, ..)\n            .pfb            read(vsg::Path, ..)\n            .ttc            read(vsg::Path, ..)\n            .ttf            read(vsg::Path, ..)\n            .woff           read(vsg::Path, ..)\n\n            vsg::Options::Value  type\n            -------------------  ----\n            quad_margin_ratio    float\n            texel_margin_ratio   float\n\n        vsgXchange::assimp provides support for 70 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .3d             read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .3ds            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .3mf            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ac             read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ac3d           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .acc            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .amf            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ase            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ask            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .assbin         read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .b3d            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .blend          read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .bsp            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .bvh            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .cob            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .csm            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .dae            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .dxf            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .enff           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .fbx            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .glb            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .gltf           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .hmp            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ifc            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ifczip         read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .iqm            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .irr            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .irrmesh        read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .lwo            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .lws            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .lxo            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md2            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md3            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md5anim        read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md5camera      read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .md5mesh        read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .mdc            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .mdl            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .mesh           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .mesh.xml       read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .mot            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ms3d           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ndo            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .nff            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .obj            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .off            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ogex           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .pk3            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ply            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .pmx            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .prj            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .q3o            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .q3s            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .raw            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .scn            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .sib            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .smd            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .step           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .stl            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .stp            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .ter            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .uc             read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .vta            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .x              read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .x3d            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .x3db           read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .xgl            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .xml            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .zae            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n            .zgl            read(vsg::Path, ..) read(std::istream, ..) read(uint8_t* ptr, size_t size, ..)\n\n            vsg::Options::Value      type\n            -------------------      ----\n            crease_angle             float\n            culling                  bool\n            discard_empty_nodes      bool\n            external_texture_format  vsgXchange::TextureFormat\n            external_textures        bool\n            generate_sharp_normals   bool\n            generate_smooth_normals  bool\n            material_color_space     vsg::CoordinateSpace\n            print_assimp             int\n            two_sided                bool\n            vertex_color_space       vsg::CoordinateSpace\n\n        vsgXchange::GDAL provides support for 96 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .ACE2           read(vsg::Path, ..)\n            .asc            read(vsg::Path, ..)\n            .b              read(vsg::Path, ..)\n            .bag            read(vsg::Path, ..)\n            .bil            read(vsg::Path, ..)\n            .bin            read(vsg::Path, ..)\n            .blx            read(vsg::Path, ..)\n            .bmp            read(vsg::Path, ..)\n            .bt             read(vsg::Path, ..)\n            .byn            read(vsg::Path, ..)\n            .cal            read(vsg::Path, ..)\n            .ct1            read(vsg::Path, ..)\n            .cub            read(vsg::Path, ..)\n            .dat            read(vsg::Path, ..)\n            .ddf            read(vsg::Path, ..)\n            .dem            read(vsg::Path, ..)\n            .dt0            read(vsg::Path, ..)\n            .dt1            read(vsg::Path, ..)\n            .dt2            read(vsg::Path, ..)\n            .dwg            read(vsg::Path, ..)\n            .err            read(vsg::Path, ..)\n            .ers            read(vsg::Path, ..)\n            .fits           read(vsg::Path, ..)\n            .gdb            read(vsg::Path, ..)\n            .gen            read(vsg::Path, ..)\n            .gff            read(vsg::Path, ..)\n            .gif            read(vsg::Path, ..)\n            .gpkg           read(vsg::Path, ..)\n            .gpkg.zip       read(vsg::Path, ..)\n            .grb            read(vsg::Path, ..)\n            .grb2           read(vsg::Path, ..)\n            .grc            read(vsg::Path, ..)\n            .grd            read(vsg::Path, ..)\n            .grib2          read(vsg::Path, ..)\n            .gsb            read(vsg::Path, ..)\n            .gtx            read(vsg::Path, ..)\n            .gvb            read(vsg::Path, ..)\n            .gxf            read(vsg::Path, ..)\n            .h5             read(vsg::Path, ..)\n            .hdf            read(vsg::Path, ..)\n            .hdf5           read(vsg::Path, ..)\n            .hdr            read(vsg::Path, ..)\n            .heic           read(vsg::Path, ..)\n            .hf2            read(vsg::Path, ..)\n            .hgt            read(vsg::Path, ..)\n            .img            read(vsg::Path, ..)\n            .isg            read(vsg::Path, ..)\n            .j2k            read(vsg::Path, ..)\n            .jp2            read(vsg::Path, ..)\n            .jpeg           read(vsg::Path, ..)\n            .jpg            read(vsg::Path, ..)\n            .json           read(vsg::Path, ..)\n            .kap            read(vsg::Path, ..)\n            .kml            read(vsg::Path, ..)\n            .kmz            read(vsg::Path, ..)\n            .kro            read(vsg::Path, ..)\n            .lbl            read(vsg::Path, ..)\n            .lcp            read(vsg::Path, ..)\n            .map            read(vsg::Path, ..)\n            .mbtiles        read(vsg::Path, ..)\n            .mem            read(vsg::Path, ..)\n            .mpl            read(vsg::Path, ..)\n            .mpr            read(vsg::Path, ..)\n            .mrf            read(vsg::Path, ..)\n            .n1             read(vsg::Path, ..)\n            .nat            read(vsg::Path, ..)\n            .nc             read(vsg::Path, ..)\n            .ntf            read(vsg::Path, ..)\n            .pdf            read(vsg::Path, ..)\n            .pgm            read(vsg::Path, ..)\n            .pix            read(vsg::Path, ..)\n            .png            read(vsg::Path, ..)\n            .pnm            read(vsg::Path, ..)\n            .ppi            read(vsg::Path, ..)\n            .ppm            read(vsg::Path, ..)\n            .prf            read(vsg::Path, ..)\n            .rda            read(vsg::Path, ..)\n            .rgb            read(vsg::Path, ..)\n            .rik            read(vsg::Path, ..)\n            .rst            read(vsg::Path, ..)\n            .rsw            read(vsg::Path, ..)\n            .sdat           read(vsg::Path, ..)\n            .sg-grd-z       read(vsg::Path, ..)\n            .sigdem         read(vsg::Path, ..)\n            .sqlite         read(vsg::Path, ..)\n            .ter            read(vsg::Path, ..)\n            .tga            read(vsg::Path, ..)\n            .tif            read(vsg::Path, ..)\n            .tiff           read(vsg::Path, ..)\n            .toc            read(vsg::Path, ..)\n            .tpkx           read(vsg::Path, ..)\n            .vrt            read(vsg::Path, ..)\n            .webp           read(vsg::Path, ..)\n            .xml            read(vsg::Path, ..)\n            .xpm            read(vsg::Path, ..)\n            .xyz            read(vsg::Path, ..)\n\n        osg2vsg::OSG provides support for 132 extensions, and 0 protocols.\n            Extensions      Supported ReaderWriter methods\n            ----------      ------------------------------\n            .*              read(vsg::Path, ..)\n            .3dc            read(vsg::Path, ..)\n            .3ds            read(vsg::Path, ..)\n            .3gp            read(vsg::Path, ..)\n            .ac             read(vsg::Path, ..)\n            .added          read(vsg::Path, ..)\n            .asc            read(vsg::Path, ..)\n            .attr           read(vsg::Path, ..)\n            .avi            read(vsg::Path, ..)\n            .bmp            read(vsg::Path, ..)\n            .bvh            read(vsg::Path, ..)\n            .bw             read(vsg::Path, ..)\n            .cef            read(vsg::Path, ..)\n            .cff            read(vsg::Path, ..)\n            .cfg            read(vsg::Path, ..)\n            .cid            read(vsg::Path, ..)\n            .compute        read(vsg::Path, ..)\n            .cs             read(vsg::Path, ..)\n            .curl           read(vsg::Path, ..)\n            .dds            read(vsg::Path, ..)\n            .dxf            read(vsg::Path, ..)\n            .flt            read(vsg::Path, ..)\n            .flv            read(vsg::Path, ..)\n            .fnt            read(vsg::Path, ..)\n            .fon            read(vsg::Path, ..)\n            .frag           read(vsg::Path, ..)\n            .fs             read(vsg::Path, ..)\n            .gdal           read(vsg::Path, ..)\n            .geo            read(vsg::Path, ..)\n            .geom           read(vsg::Path, ..)\n            .gif            read(vsg::Path, ..)\n            .gl             read(vsg::Path, ..)\n            .gles           read(vsg::Path, ..)\n            .glsl           read(vsg::Path, ..)\n            .gs             read(vsg::Path, ..)\n            .gz             read(vsg::Path, ..)\n            .hdr            read(vsg::Path, ..)\n            .int            read(vsg::Path, ..)\n            .inta           read(vsg::Path, ..)\n            .ive            read(vsg::Path, ..)\n            .ivez           read(vsg::Path, ..)\n            .jpeg           read(vsg::Path, ..)\n            .jpg            read(vsg::Path, ..)\n            .ktx            read(vsg::Path, ..)\n            .logo           read(vsg::Path, ..)\n            .lua            read(vsg::Path, ..)\n            .lw             read(vsg::Path, ..)\n            .lwo            read(vsg::Path, ..)\n            .lws            read(vsg::Path, ..)\n            .m2ts           read(vsg::Path, ..)\n            .m4v            read(vsg::Path, ..)\n            .material       read(vsg::Path, ..)\n            .md2            read(vsg::Path, ..)\n            .mjpeg          read(vsg::Path, ..)\n            .mkv            read(vsg::Path, ..)\n            .modified       read(vsg::Path, ..)\n            .mov            read(vsg::Path, ..)\n            .mp4            read(vsg::Path, ..)\n            .mpg            read(vsg::Path, ..)\n            .mpv            read(vsg::Path, ..)\n            .normals        read(vsg::Path, ..)\n            .obj            read(vsg::Path, ..)\n            .ogg            read(vsg::Path, ..)\n            .ogr            read(vsg::Path, ..)\n            .osc            read(vsg::Path, ..)\n            .osg            read(vsg::Path, ..)\n            .osg2           read(vsg::Path, ..)\n            .osga           read(vsg::Path, ..)\n            .osgb           read(vsg::Path, ..)\n            .osgjs          read(vsg::Path, ..)\n            .osgs           read(vsg::Path, ..)\n            .osgshadow      read(vsg::Path, ..)\n            .osgt           read(vsg::Path, ..)\n            .osgterrain     read(vsg::Path, ..)\n            .osgtgz         read(vsg::Path, ..)\n            .osgviewer      read(vsg::Path, ..)\n            .osgx           read(vsg::Path, ..)\n            .osgz           read(vsg::Path, ..)\n            .otf            read(vsg::Path, ..)\n            .path           read(vsg::Path, ..)\n            .pbm            read(vsg::Path, ..)\n            .pfa            read(vsg::Path, ..)\n            .pfb            read(vsg::Path, ..)\n            .pgm            read(vsg::Path, ..)\n            .pic            read(vsg::Path, ..)\n            .pivot_path     read(vsg::Path, ..)\n            .ply            read(vsg::Path, ..)\n            .png            read(vsg::Path, ..)\n            .pnm            read(vsg::Path, ..)\n            .pov            read(vsg::Path, ..)\n            .ppm            read(vsg::Path, ..)\n            .pvr            read(vsg::Path, ..)\n            .removed        read(vsg::Path, ..)\n            .revisions      read(vsg::Path, ..)\n            .rgb            read(vsg::Path, ..)\n            .rgba           read(vsg::Path, ..)\n            .rot            read(vsg::Path, ..)\n            .rotation_path  read(vsg::Path, ..)\n            .sav            read(vsg::Path, ..)\n            .scale          read(vsg::Path, ..)\n            .sdp            read(vsg::Path, ..)\n            .sgi            read(vsg::Path, ..)\n            .shadow         read(vsg::Path, ..)\n            .shp            read(vsg::Path, ..)\n            .sta            read(vsg::Path, ..)\n            .stl            read(vsg::Path, ..)\n            .tctrl          read(vsg::Path, ..)\n            .terrain        read(vsg::Path, ..)\n            .teval          read(vsg::Path, ..)\n            .text3d         read(vsg::Path, ..)\n            .tf             read(vsg::Path, ..)\n            .tf-255         read(vsg::Path, ..)\n            .tga            read(vsg::Path, ..)\n            .tgz            read(vsg::Path, ..)\n            .tif            read(vsg::Path, ..)\n            .tiff           read(vsg::Path, ..)\n            .trans          read(vsg::Path, ..)\n            .trk            read(vsg::Path, ..)\n            .ttc            read(vsg::Path, ..)\n            .ttf            read(vsg::Path, ..)\n            .txf            read(vsg::Path, ..)\n            .txp            read(vsg::Path, ..)\n            .vert           read(vsg::Path, ..)\n            .view           read(vsg::Path, ..)\n            .vs             read(vsg::Path, ..)\n            .vsga           read(vsg::Path, ..)\n            .vsgb           read(vsg::Path, ..)\n            .vsgt           read(vsg::Path, ..)\n            .wmv            read(vsg::Path, ..)\n            .woff           read(vsg::Path, ..)\n            .x              read(vsg::Path, ..)\n            .zip            read(vsg::Path, ..)\n\n            vsg::Options::Value  type\n            -------------------  ----\n            original_converter   bool\n            read_build_options   string\n            write_build_options  string\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsg-dev%2Fvsgxchange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsg-dev%2Fvsgxchange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsg-dev%2Fvsgxchange/lists"}