GithubHelp home page GithubHelp logo

vsg-dev / vsgexamples Goto Github PK

View Code? Open in Web Editor NEW
143.0 16.0 67.0 47.19 MB

Example programs that test and illustrate how to use the VSG and optional add-on libraries

License: MIT License

GLSL 97.98% CMake 2.02%
vulkan vsg modern cpp17 vulkanscenegraph scenegraph

vsgexamples's People

Contributors

640kb avatar anormann1974 avatar anyoldname3 avatar appcodegen avatar asafran avatar blobfish avatar dov avatar follower avatar franciszhi avatar geefr avatar iconiqlabs avatar joaopmoliveira avatar juval avatar kannode avatar laurensvoerman avatar lobneroo avatar pauljurczak avatar rhabacker avatar robertosfield avatar sbrkopac avatar theodoregoetz avatar timoore avatar tomhog avatar vsg-dev avatar xenonofarcticus avatar yangshen398 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vsgexamples's Issues

Black canvas while running raytracing example

System:

  • Ubuntu - 20.04, VulkanSDK - 1.2.148.0
  1. Checkout and compile latest vsg, vsgXchange and vsgExamples versions
  2. Start raytracing sample

Result:

  • Black canvas while rendering. There are following error messages in the console:

First one is about wrong size of missShaderBindingOffset after very first call to extensions->vkCmdTraceRaysNV()
vsg_rt_6

Second one is about wrong image layout after first call to RecordAndSubmitTask::finish() followed by Queue::submit()
vsg_rt_8

After that, the console is overflowed with the first error message, the second one seems to occur only once.

Oleg

Android Example issues

To track outstanding work for the android example

  • main.cpp needs updates for vsg 1.0, currently uses older classes, doesn't make use of Viewer
  • Should probably package some models into the app's resources, rather than loading them from device Downloads folder
  • Android Window initialisation currently broken (in vsgExamples project, and any new ones I've tried)

The window initialisation is a little odd - The native window handle is passed down to vsg okay, but hits a bad any_cast when read.

Code is definitely correct so I think it's an issue with mismatched C++ STLs, seen it a few times on android, but in this case main.cpp & vsg are linked statically, so should be sharing a single STL variant between them.

.spv files should be built from source or removed entirely

The .spv binary shader file situation in data/shaders is a bit confused. Newer shaders, such as the standard shaders and computevertex, have no .spv files at all. The rest are fairly old. They may be useful examples for cases where VSG is built without shader compilation and the user doesn't want to use the built-in shaders. However, because the .spv files are not built from source, there's no guarantee that they are consistant with their source, other than the diligence of the commiter.

A complication is that the standard shaders can't easily be built with the Vulkan SDK tools because of all the variants supported in each shader. That's a different issue that I will address in another post.

So, I propose that either the .spv files are removed, or rules are added to CMake files (for example, https://gist.github.com/evilactually/a0d191701cb48f157b05be7f74d79396) to compile .spv for the shaders for which it makes sense.

MinGW 32 compile error

With recent source I get the following compile errors:

/home/xxx/src/vsgFramework-mingw32-build/src/vsgExamples/examples/viewer/vsgwindows/vsgwindows.cpp: In function 'int main(int, char**)':
/home/xxx/src/vsgFramework-mingw32-build/src/vsgExamples/examples/viewer/vsgwindows/vsgwindows.cpp:124:21: error: 'class vsg::Trackball' has no member named 'addWindow'
  124 |     main_trackball->addWindow(window1);
      |                     ^~~~~~~~~
/home/xxx/src/vsgFramework-mingw32-build/src/vsgExamples/examples/viewer/vsgwindows/vsgwindows.cpp:128:26: error: 'class vsg::Trackball' has no member named 'addWindow'
  128 |     secondary_trackball->addWindow(window2);
      |                          ^~~~~~~~~
make[5]: *** [examples/viewer/vsgwindows/CMakeFiles/vsgwindows.dir/build.make:86: examples/viewer/vsgwindows/CMakeFiles/vsgwindows.dir/vsgwindows.cpp.obj] Fehler 1

Checked-in code inconsistent with .clang-format

The source code as it exists in the repo has formatting inconsistent with what .clang-format specifies. This means that when the build system automatically applies it, it makes loads of changes to formatting. I suspect this is in part due to different versions of the tool behaving differently when options aren't explicitly set. For context, I have 15.0.1.

One example is EmptyLineAfterAccessModifier introduced in version 13. It's unspecified in .clang-format, so falls back to what's specified in the BasedOnStyle, which is left unset, and defaults to LLVM. The LLVM style sets EmptyLineAfterAccessModifier to Never, so all empty lines after access modifiers get removed from the many files that have them.

I've just had a bit of a look at how you're supposed to make a version independent .clang-format file, and it seems that in general, it can't be done - if you don't specify every setting, new versions change the defaults, so your effective settings change, and if you do specify everything, older versions choke when they hit new settings. I guess that means the only real solution to this is specifying in the readme which version of the tool needs to be used.

changing the camera upvector lets visual objects disappear

Hi Robert,

for project::chrono we need an optional upvector (0,1,0) for backward compatibility to older model files. Changing the upvector in vsg programs let all visual objects vanish yet. vsgskybox is a good example for testing this. I guess it is not intended.

Image Displaying in ImGui

Nice work!

Can you provide an example on how to load and display an image with Dear ImGui? I tried to work along this tutorial but failed.

In the end ImGui just needs a VkDescriptorSet but I'm unsure how to set everything up with the vsg classes.

Thanks in advance!

vsgscreenshot and vsgheadless don't support subResourceLayout.rowPitch

rowPitch may have a non standard value when using odd screen resolutions, like 800x700

Not using this rowPitch corrupts the output image in these situations

Example rowPitch support:

// 4) map image and copy
//
VkImageSubresource subResource{VK_IMAGE_ASPECT_COLOR_BIT, 0, 0};                                              VkSubresourceLayout subResourceLayout;
vkGetImageSubresourceLayout(*device, dstImage->vk(device->deviceID), &subResource, &subResourceLayout); 
auto deviceMemory = dstImage->getDeviceMemory(device->deviceID);
 // Map the buffer memory that will automatically unmap itself on destruction.
auto mappedData = vsg::MappedData<vsg::ubyteArray>::create(deviceMemory, subResourceLayout.offset, 0, vsg::Data::Layout{.stride=1}, subResourceLayout.size); 
auto out_data = vsg::ubvec4Array2D::create(dstImage->extent.width, dstImage->extent.height, vsg::Data::Layout{dstImage->
format});
auto w = dstImage->extent.width;
 auto h = dstImage->extent.height;
for (uint32_t row=0; row<h; ++row)
    std::memcpy(out_data->dataPointer(row*w), mappedData->dataPointer(row*subResourceLayout.rowPitch), w*out_data->getLayout().stride);

To avoid an extra copy in the code above, vsg::Data would need to support rowPitch

None of the example models are actually compatible with vsgclip example

All of the example models have something wrong with them when running the vsgclip example. For example, the teapot clearly reads from uninitialised memory if run without validation layers enabled, and simply refuses to draw otherwise, and the OSM map is simply way larger than the clipping sphere. The most compatible of the models is lz.vsgt, but even that has problems with the billboarded trees, which all end up stacked in the same location at (presumably) the world origin.

As the pipeline replacement to swap in the clipping-enabled shader needs the original pipeline layout to be compatible and the shader's behaviour to be roughly the same (minus the clipping) it would make a degree of sense to pick replacement state compatible with the entirety of at least one of the sample models.

Does vsgcompute work on osx?

[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
Compilation failed: 

program_source:26:26: error: 'function_constant' has a duplicate index '2'
constant uint _167_tmp [[function_constant(2)]];
                         ^
program_source:24:26: note: duplicate 'function_constant' index '2' here
constant uint _166_tmp [[function_constant(2)]];
                         ^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Compute shader function could not be compiled into pipeline. See previous logged error.
Error: vsg::Pipeline::createCompute(...) failed to create VkPipeline.

vsgmeshshader fails with "failed to create logical device."

Other vsg examples such as vsgdraw run fine, but vsgmeshshader fails at the line below with
"Error: vsg::Device::create(...) failed to create logical device."
Perhaps this support is lacking in the driver, but I would have expected the example to catch that earlier.

Windows 10, nVidia P2000, latest vulkan 1.2 drivers

auto mesh_features = window->getOrCreatePhysicalDevice()->getFeatures<VkPhysicalDeviceMeshShaderFeaturesNV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV>();

vsgskybox refuses to load models/skybox.vsgb

Strange error when calling this:
vsgskybox models/teapot.vsgt --skybox models/skybox.vsgb
Error: failed to load cubemap file : models/skybox.vsgb

skybox.vsgb exists and can be opened with:
vsgviewer models/skybox.vsgb

This error occurs on MacOS 12.2 and on Windows 10 as well.
Vulkan version: 1.3.204.0 on both systems.

how to render models with tileData?

There are some models with tileData in the data/models, like "openstreetmap.vsgt" and "readymap.vsgt",
how to render it ? I used vsgviewer ,but show nothing.
thank you !

vsgClip crashes

vsgClip crashes at start with the following message:

availableFeatures.samplerAnisotropy = 1, limits.maxSamplerAnisotropy = 16
availableFeatures.shaderClipDistance = 1, limits.maxClipDistances = 8
availableFeatures.shaderCullDistance = 1, limits.maxCullDistances = 8
limits.maxCombinedClipAndCullDistances = 8
Could not create shaders.

Question: cmake dependency on vsg_glslang

Hello,

I get an error running cmake on the project

Could not find a package configuration file provided by "vsg_glslang" with   any of the following names:
    vsg_glslangConfig.cmake
    vsg_glslang-config.cmake

I've set the path to a freshly compiled master of VSG in CMAKE_PREFIX_PATH, and that's found correctly.
Is there another dependency I'm missing?

Thanks,
Claudio

about quaternion

why the math library does not include these?

template<typename T>
t_quat<T> rotate(T angle_radians, const t_vec3<T>& v);

template<typename T>
constexpr t_vec3<T> operator*(const t_vec3<T>& v);

how to set update callback for a node

hi,
if i want to set update callback for a vsgNode like this code in osg :

RotateTransform *transform = new RotateTransform;
transform->setName( "XXX" );
RotUpdateCallback *cc =
new RotUpdateCallback( XXX, XXX, XXX );
transform->setUpdateCallback( cc );

what should I do,or is there an example for this ?
thanks!!

vsgshadow has black patches flickering on the ground

Hi,
I run vsgshadow on Windows 11,most of the time, it seems fine,but sometimes there are black patches flickering on the shadow receiving surface.using --debug console output none information.I have carefully studied the pre RenderCommandGraph (submitOrder=-1) code, but I do not know how to ensure that the shadow RTT is rendered before being used by subsequent CommandGraph (submitOrder=0)
2
3

Building vsgexample with mingw fails with error: 'void CustomLogger::debug_implementation(std::string_view)' marked 'override', but does not override

Cross building vsgexample with gcc for Windows with recent libvsg (from commit ce5b8f9) fails with the following error:

[  114s] cd /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog && /usr/bin/x86_64-w64-mingw32-g++  -DVSG_SHARED_LIBRARY  -O2 -g -pipe -Wall -fexceptions --param=ssp-buffer-size=4 -mms-bitfields -O2 -g -DNDEBUG   -Wall -Wparentheses -Wno-long-long -Wno-import -Wreturn-type -Wmissing-braces -Wunknown-pragmas -Wmaybe-uninitialized -Wshadow -Wunused -Wno-misleading-indentation -Wextra -std=gnu++17 -o CMakeFiles/vsglog.dir/vsglog.cpp.obj -c /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:11:10: error: 'void CustomLogger::debug_implementation(std::string_view)' marked 'override', but does not override
[  114s]    11 |     void debug_implementation(std::string_view message) override
[  114s]       |          ^~~~~~~~~~~~~~~~~~~~
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:16:10: error: 'void CustomLogger::info_implementation(std::string_view)' marked 'override', but does not override
[  114s]    16 |     void info_implementation(std::string_view message) override
[  114s]       |          ^~~~~~~~~~~~~~~~~~~
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:21:10: error: 'void CustomLogger::warn_implementation(std::string_view)' marked 'override', but does not override
[  114s]    21 |     void warn_implementation(std::string_view message) override
[  114s]       |          ^~~~~~~~~~~~~~~~~~~
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:26:10: error: 'void CustomLogger::error_implementation(std::string_view)' marked 'override', but does not override
[  114s]    26 |     void error_implementation(std::string_view message) override
[  114s]       |          ^~~~~~~~~~~~~~~~~~~~
[  114s] In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/core/External.h:15,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/all.h:25,
[  114s]                  from /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:1:
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/core/Inherit.h: In instantiation of 'static vsg::ref_ptr<R> vsg::Inherit<ParentClass, Subclass>::create(Args&& ...) [with Args = {}; ParentClass = vsg::Logger; Subclass = CustomLogger]':
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:62:52:   required from here
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/core/Inherit.h:38:38: error: invalid new-expression of abstract class type 'CustomLogger'
[  114s]    38 |             return ref_ptr<Subclass>(new Subclass(args...));
[  114s]       |                                      ^~~~~~~~~~~~~~~~~~~~~
[  114s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:5:7: note:   because the following virtual functions are pure within 'CustomLogger':
[  114s]     5 | class CustomLogger : public vsg::Inherit<vsg::Logger, CustomLogger>
[  114s]       |       ^~~~~~~~~~~~
[  114s] In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/viewer/ProjectionMatrix.h:15,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/viewer/Camera.h:17,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/viewer/CommandGraph.h:18,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/viewer/SecondaryCommandGraph.h:15,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/commands/ExecuteCommands.h:16,
[  114s]                  from /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/all.h:97,
[  114s]                  from /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsglog/vsglog.cpp:1:
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/io/Logger.h:206:22: note:     'virtual void vsg::Logger::debug_implementation(const string_view&)'
[  114s]   206 |         virtual void debug_implementation(const std::string_view& message) = 0;
[  114s]       |                      ^~~~~~~~~~~~~~~~~~~~
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/io/Logger.h:207:22: note:     'virtual void vsg::Logger::info_implementation(const string_view&)'
[  114s]   207 |         virtual void info_implementation(const std::string_view& message) = 0;
[  114s]       |                      ^~~~~~~~~~~~~~~~~~~
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/io/Logger.h:208:22: note:     'virtual void vsg::Logger::warn_implementation(const string_view&)'
[  114s]   208 |         virtual void warn_implementation(const std::string_view& message) = 0;
[  114s]       |                      ^~~~~~~~~~~~~~~~~~~
[  114s] /usr/x86_64-w64-mingw32/sys-root/mingw/include/vsg/io/Logger.h:209:22: note:     'virtual void vsg::Logger::error_implementation(const string_view&)'
[  114s]   209 |         virtual void error_implementation(const std::string_view& message) = 0;
[  114s]       |                      ^~~~~~~~~~~~~~~~~~~~
[  114s] make[2]: *** [examples/io/vsglog/CMakeFiles/vsglog.dir/build.make:83: examples/io/vsglog/CMakeFiles/vsglog.dir/vsglog.cpp.obj] Error 1
[  114s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939'
[  114s] make[1]: *** [CMakeFiles/Makefile2:1913: examples/io/vsglog/CMakeFiles/vsglog.dir/all] Error 2
[  114s] make[1]: *** Waiting for unfinished jobs....

vsgbuilder crashes on Mac

vsgbuilder doesn't run on Mac M1 OS 11.5.1. It crashes due to an uncaught exception. See the IDE output in the appended image.
vsgbuilder crash on Mac M1

Nonsens output instead of graphics display on the Mac

Beginning with the last commits (GDAL integration into vsgXchange etc.) some examples are broken on the Mac.
It is:
vsgdraw
vsgexecutecommands
vsginterleaved
vsgmultigpu

These examples generate a huge amount of data and put it into stderr. It is binary data. With
vsgdraw -d
I tried to get a human readable message. You can see it in the attached image.
Bildschirmfoto 2022-07-02 um 09 47 52

Cannot render glb files with vsgviewer

The file I annexed
Link4.zip
Can be rendered with the Khronos Viewer, but the vsgviewer does not render anything. I have tried to convert it to the vsgt format with vsgconv tool, which creates a valid file,
model.zip
But this model is also not rendered. I am experiencing this phenomena with all 3D formats, ply, glft...
I checked and the vsg::read call returns a valid pointer. Is this an assimp problem or a vsgXchange problem?

vsgcompute issues with MoltenVK..

using latest MoltenVK 1.2.135..
Are you aware?

 ./vsgcompute
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
Compilation failed: 

program_source:26:26: error: 'function_constant' has a duplicate index '2'
constant uint _167_tmp [[function_constant(2)]];
                         ^
program_source:24:26: note: duplicate 'function_constant' index '2' here
constant uint _166_tmp [[function_constant(2)]];
                         ^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Compute shader function could not be compiled into pipeline. See previous logged error.
libc++abi.dylib: terminating with uncaught exception of type vsg::Exception
zsh: abort      ./vsgcompute

2D overly example

Is there any 2D overly example? I want to draw menus over a 3D scene.

data/ is not installed

The "make install" routine installs all binaries to a system, but does not seem to install the contents of the data/ directory which is needed for most examples to work. If these are redistributable in the same way (license) as the examples themselves, they should be installed too.

vsgviewer render readymap.vsgt?

execute the commnad:
"vsgviewer readymap.vsgt "
I get the error
image
but execute the command
"vsgviewer openstreetmap.vsgt"
I get the right outcome. the differenrce is the format , jpeg or png.
alse, I can access the imageLaser in chrome, the internet access is right.

Thank you!

vsgsreenshot doesn't work correctly on windows 10

Hi Robert,

vsgscreenshot models/teapot.vsgt

shows the famous Melitta teapot as 3d scene. With the 's' key a 2d model of the actual view in the file 'screenshot.vsgt' can be written. Opening this file with:

vsgviewer screenshot.vsgt

shows only the background color on Windows. For our project we need the image export as basic functionality for video generation. This information is available in the variable 'imageData' and can easily be exported via stb_image_write. It works perfectly on my Mac M1 MacOS 12.3. On Windows (AMD Ryzen 9 with NVIDIA GeForce RTX 3050) only shows the background color.

For further tests I modified the vsgscreenshot example, it exports flat image files now. Can you repeat this error?

Best
TestProblem.zip

build errors against VulkSceneGraph master

I think this is because the size() member was renamed and a few other things but I don't have time to dig into them and fix them.

55>------ Build started: Project: vsganaglyphicstereo, Configuration: Debug x64 ------
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): error C2672: 'begin': no matching overloaded function found
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1589,27): message : could be '_Ty *std::begin(_Ty (&)[_Size]) noexcept'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Ty *std::begin(_Ty (&)[_Size]) noexcept': could not deduce template argument for '_Ty (&)[_Size]' from 'T'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1571,30): message : or       'unknown-type std::begin(const _Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : Failed to specialize function template 'unknown-type std::begin(const _Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : With the following template arguments:
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Container=T'
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1565,30): message : or       'unknown-type std::begin(_Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : Failed to specialize function template 'unknown-type std::begin(_Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : With the following template arguments:
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Container=T'
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\initializer_list(55,35): message : or       'const _Elem *std::begin(std::initializer_list<_Elem>) noexcept'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : 'const _Elem *std::begin(std::initializer_list<_Elem>) noexcept': could not deduce template argument for 'std::initializer_list<_Elem>' from 'T'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): error C2672: 'end': no matching overloaded function found
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1594,27): message : could be '_Ty *std::end(_Ty (&)[_Size]) noexcept'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Ty *std::end(_Ty (&)[_Size]) noexcept': could not deduce template argument for '_Ty (&)[_Size]' from 'T'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1583,30): message : or       'unknown-type std::end(const _Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : Failed to specialize function template 'unknown-type std::end(const _Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : With the following template arguments:
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Container=T'
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\xutility(1577,30): message : or       'unknown-type std::end(_Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : Failed to specialize function template 'unknown-type std::end(_Container &) noexcept(<expr>)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : With the following template arguments:
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : '_Container=T'
53>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\initializer_list(60,35): message : or       'const _Elem *std::end(std::initializer_list<_Elem>) noexcept'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,28): message : 'const _Elem *std::end(std::initializer_list<_Elem>) noexcept': could not deduce template argument for 'std::initializer_list<_Elem>' from 'T'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(144,13): error C3536: '<begin>$L0': cannot be used before it is initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(144,13): error C3536: '<end>$L0': cannot be used before it is initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(143,49): error C2100: illegal indirection
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(154,74): error C2039: 'size': is not a member of 'vsg::Data'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/Data.h(103,24): message : see declaration of 'vsg::Data'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(155,41): error C3536: 'colors': cannot be used before it is initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(155,25): error C2679: binary '=': no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(90,18): message : could be 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<vsg::Data> &)'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(74,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(T *)'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(125,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(vsg::ref_ptr<R> &&)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(155,25): message : 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(vsg::ref_ptr<R> &&)': could not deduce template argument for 'vsg::ref_ptr<R> &&' from 'int'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(107,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<R> &)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(155,25): message : 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<R> &)': could not deduce template argument for 'const vsg::ref_ptr<R> &' from 'int'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(155,25): message : while trying to match the argument list '(vsg::ref_ptr<vsg::Data>, int)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(156,32): error C2100: illegal indirection
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(156,17): error C2530: 'c': references must be initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(156,17): error C3531: 'c': a symbol whose type contains 'auto' must have an initializer
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(156,30): error C2143: syntax error: missing ';' before ':'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(156,41): error C2143: syntax error: missing ';' before ')'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(163,76): error C2039: 'size': is not a member of 'vsg::Data'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/Data.h(103,24): message : see declaration of 'vsg::Data'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(164,41): error C3536: 'colors': cannot be used before it is initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(164,25): error C2679: binary '=': no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(90,18): message : could be 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<vsg::Data> &)'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(74,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(T *)'
53>        with
53>        [
53>            T=vsg::Data
53>        ]
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(125,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(vsg::ref_ptr<R> &&)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(164,25): message : 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(vsg::ref_ptr<R> &&)': could not deduce template argument for 'vsg::ref_ptr<R> &&' from 'int'
53>F:\Programming\Libraries\bin\vsg\include\vsg/core/ref_ptr.h(107,18): message : or       'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<R> &)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(164,25): message : 'vsg::ref_ptr<vsg::Data> &vsg::ref_ptr<vsg::Data>::operator =(const vsg::ref_ptr<R> &)': could not deduce template argument for 'const vsg::ref_ptr<R> &' from 'int'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(164,25): message : while trying to match the argument list '(vsg::ref_ptr<vsg::Data>, int)'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(165,32): error C2100: illegal indirection
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(165,17): error C2530: 'c': references must be initialized
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(165,17): error C3531: 'c': a symbol whose type contains 'auto' must have an initializer
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(165,30): error C2143: syntax error: missing ';' before ':'
53>F:\Programming\Libraries\src\vsg-dev\vsgExamples\examples\utils\vsgbuilder\vsgbuilder.cpp(165,41): error C2143: syntax error: missing ';' before ')'
39>vsggraphicspipelineconfigurator.vcxproj -> F:\Programming\Libraries\src\vsg-dev\vsgExamples\build\bin\Debug\vsggraphicspipelineconfigurator.exe

How to create the included spv files

This will probably be obvious to me at some later date, however:

How are each of the .spv files within data/shaders generated?
How are the font files with data/fonts generated?
How are texture files with data/textures generated?

Is there a script which does this?
If there is not a script which does this, could you create a script which does this, so that the generation method is explicit?

Where are the source-data files for the generated files?

Could you include in your repo, the sources for these files and the script which generates them.

Thanks

vsgmultiviews is not ok

vsgmultiviews.cpp separateRenderGraph = true;
Using a RenderGraph per View:
Only the last added vsg:: RenderGraph will be displayed

Builder crashes when trying to dynamically add objects to vsg::Group

When trying to use the builder outside of the initial load of the graph - I get a segfault. The stack trace is as follows:

>	vsg-siege.exe!vsg::RecordTraversal::apply(const vsg::StateGroup & stateGroup) Line 296	C++
 	vsg-siege.exe!vsg::Inherit<vsg::Group,vsg::StateGroup>::accept(vsg::RecordTraversal & visitor) Line 83	C++
 	vsg-siege.exe!vsg::Group::t_traverse<vsg::Group const ,vsg::RecordTraversal>(const vsg::Group & node, vsg::RecordTraversal & visitor) Line 39	C++
 	vsg-siege.exe!vsg::Group::traverse(vsg::RecordTraversal & visitor) Line 44	C++
 	vsg-siege.exe!vsg::RecordTraversal::apply(const vsg::Group & group) Line 125	C++
 	vsg-siege.exe!vsg::Inherit<vsg::Node,vsg::Group>::accept(vsg::RecordTraversal & visitor) Line 83	C++
 	vsg-siege.exe!vsg::Group::t_traverse<vsg::Group const ,vsg::RecordTraversal>(const vsg::Group & node, vsg::RecordTraversal & visitor) Line 39	C++
 	vsg-siege.exe!vsg::Group::traverse(vsg::RecordTraversal & visitor) Line 44	C++
 	vsg-siege.exe!vsg::RecordTraversal::apply(const vsg::View & view) Line 398	C++
 	vsg-siege.exe!vsg::View::t_accept<vsg::View const ,vsg::RecordTraversal>(const vsg::View & node, vsg::RecordTraversal & visitor) Line 41	C++
 	vsg-siege.exe!vsg::View::accept(vsg::RecordTraversal & visitor) Line 46	C++
 	vsg-siege.exe!vsg::Group::t_traverse<vsg::Group const ,vsg::RecordTraversal>(const vsg::Group & node, vsg::RecordTraversal & visitor) Line 39	C++
 	vsg-siege.exe!vsg::Group::traverse(vsg::RecordTraversal & visitor) Line 44	C++
 	vsg-siege.exe!vsg::RenderGraph::accept(vsg::RecordTraversal & recordTraversal) Line 137	C++
 	vsg-siege.exe!vsg::Group::t_traverse<vsg::Group const ,vsg::RecordTraversal>(const vsg::Group & node, vsg::RecordTraversal & visitor) Line 39	C++
 	vsg-siege.exe!vsg::Group::traverse(vsg::RecordTraversal & visitor) Line 44	C++
 	vsg-siege.exe!vsg::RecordTraversal::apply(const vsg::Group & group) Line 125	C++
 	vsg-siege.exe!vsg::Inherit<vsg::Group,vsg::CommandGraph>::accept(vsg::RecordTraversal & visitor) Line 83	C++
 	vsg-siege.exe!vsg::CommandGraph::record(std::vector<vsg::ref_ptr<vsg::CommandBuffer>,std::allocator<vsg::ref_ptr<vsg::CommandBuffer>>> & recordedCommandBuffers, vsg::ref_ptr<vsg::FrameStamp> frameStamp, vsg::ref_ptr<vsg::DatabasePager> databasePager) Line 151	C++
 	vsg-siege.exe!vsg::RecordAndSubmitTask::record(std::vector<vsg::ref_ptr<vsg::CommandBuffer>,std::allocator<vsg::ref_ptr<vsg::CommandBuffer>>> & recordedCommandBuffers, vsg::ref_ptr<vsg::FrameStamp> frameStamp) Line 81	C++
 	vsg-siege.exe!vsg::RecordAndSubmitTask::submit(vsg::ref_ptr<vsg::FrameStamp> frameStamp) Line 59	C++
 	vsg-siege.exe!vsg::Viewer::recordAndSubmit() Line 623	C++
 	vsg-siege.exe!main(int argc, char * * argv) Line 131	C++
 	[External Code]	

I believe this is related to this thread. I tried taking advantage of the ResourceRequirements by trying what is listed in vsg-dev/VulkanSceneGraph#369

vsg::CollectResourceRequirements collect;
sene->accept(collect);
scene->setObject("ResourceHints", collect.createResourceHints());

But it seems to have no effect on the crash.
Here is the attached simplified example. There may be some "oddities" with the setup but I tried to keep it as close as I could to my local app but heavily stripped down.

vsgshadow without shadows on MacOS

I have tested the new shadowing functionality on Linux, Windows 11 and MacOS 14.0 (Sonoma). The Linux and Windows version of vsgshadow works well. On the Mac the shadows don't show up.

Bildschirmfoto 2023-10-06 um 08 26 27

Wayland support

Running vsgimgui_example, for example, runs into an exception:

[Exception] Failed to created Window, unable able to establish xcb connection.

Most likely the reason is that I'm already on Wayland (iow., not using X11). My window manager is Sway, in case this matters. Wayland adoption is slowly but surely increasing on Linux desktops.

xcb is a required compilation dependency of VSG.

Is or will it be possible to run the VSG examples when on Wayland?

Thanks!

vsginput doesn't draw anything

When running vsginput there is nothing drawing. If I attempt to type some text, I can see the the dispatch firing. When running with --debug flag I get the following:

layer=VK_LAYER_NV_optimus
layer=VK_LAYER_RENDERDOC_Capture
layer=VK_LAYER_VALVE_steam_overlay
layer=VK_LAYER_VALVE_steam_fossilize
layer=VK_LAYER_LUNARG_api_dump
layer=VK_LAYER_LUNARG_assistant_layer
layer=VK_LAYER_LUNARG_core_validation
layer=VK_LAYER_LUNARG_device_simulation
layer=VK_LAYER_KHRONOS_validation
layer=VK_LAYER_LUNARG_monitor
layer=VK_LAYER_LUNARG_object_tracker
layer=VK_LAYER_LUNARG_screenshot
layer=VK_LAYER_LUNARG_standard_validation
layer=VK_LAYER_LUNARG_parameter_validation
layer=VK_LAYER_GOOGLE_threading
layer=VK_LAYER_GOOGLE_unique_objects
layer=VK_LAYER_LUNARG_vktrace
valid requested layer : VK_LAYER_LUNARG_standard_validation
layer=VK_LAYER_NV_optimus
layer=VK_LAYER_RENDERDOC_Capture
layer=VK_LAYER_VALVE_steam_overlay
layer=VK_LAYER_VALVE_steam_fossilize
layer=VK_LAYER_LUNARG_api_dump
layer=VK_LAYER_LUNARG_assistant_layer
layer=VK_LAYER_LUNARG_core_validation
layer=VK_LAYER_LUNARG_device_simulation
layer=VK_LAYER_KHRONOS_validation
layer=VK_LAYER_LUNARG_monitor
layer=VK_LAYER_LUNARG_object_tracker
layer=VK_LAYER_LUNARG_screenshot
layer=VK_LAYER_LUNARG_standard_validation
layer=VK_LAYER_LUNARG_parameter_validation
layer=VK_LAYER_GOOGLE_threading
layer=VK_LAYER_GOOGLE_unique_objects
layer=VK_LAYER_LUNARG_vktrace
valid requested layer : VK_LAYER_LUNARG_standard_validation
UNASSIGNED-CoreValidation-MemTrack-InvalidMap(ERROR / SPEC): msgNum: 0 - VkMapMemory: Attempting to map memory range of size zero
    Objects: 1
        [0] 0x25, type: 8, name: NULL
VUID-vkUnmapMemory-memory-00689(ERROR / SPEC): msgNum: 0 - Unmapping Memory without memory being mapped: mem obj 0x25. The Vulkan spec states: memory must be currently host mapped (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkUnmapMemory-memory-00689)
    Objects: 1
        [0] 0x25, type: 8, name: NULL
VUID-VkImageCreateInfo-extent-00945(ERROR / SPEC): msgNum: 0 - vkCreateImage: parameter pCreateInfo->extent.height (= 0) is greater than 0 The Vulkan spec states: extent::height must be greater than 0. (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkImageCreateInfo-extent-00945)
    Objects: 1
        [0] 0, type: 10, name: NULL
VUID-VkImageCreateInfo-extent-00946(ERROR / SPEC): msgNum: 0 - vkCreateImage: parameter pCreateInfo->extent.depth (= 0) is greater than 0 The Vulkan spec states: extent::depth must be greater than 0. (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkImageCreateInfo-extent-00946)
    Objects: 1
        [0] 0, type: 10, name: NULL
VUID-VkImageCreateInfo-imageType-00957(ERROR / SPEC): msgNum: 0 - vkCreateImage(): if pCreateInfo->imageType is VK_IMAGE_TYPE_2D, pCreateInfo->extent.depth must be 1. The Vulkan spec states: If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1 (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00957)
    Objects: 1
        [0] 0, type: 0, name: NULL
VUID-VkBufferImageCopy-srcImage-00201(ERROR / SPEC): msgNum: 0 - vkCmdCopyBufferToImage(): pRegion[0] imageOffset.z is 0 and imageExtent.depth is 0. For 1D and 2D images these must be 0 and 1, respectively. The Vulkan spec states: If the calling command's srcImage (vkCmdCopyImageToBuffer) or dstImage (vkCmdCopyBufferToImage) is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then imageOffset.z must be 0 and imageExtent.depth must be 1 (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkBufferImageCopy-srcImage-00201)
    Objects: 1
        [0] 0x2d, type: 10, name: NULL

I'm using VulkanSceneGraph master.

No CMakeLists.txt file for vsgoffscreenshot

The examples cannot be built due to a incomplete cmake configuration (after latest push):

CMake Error at examples/app/CMakeLists.txt:9 (add_subdirectory):
  The source directory

    /Users/rainerge/Soft/Entwicklung/VSG3/download_vsg/vsgExamples/examples/app/vsgoffscreenshot

  does not contain a CMakeLists.txt file.

run vsgrendertotexture and vsgheadless crash

Hi,
I run vsgrendertotexture and vsgheadless example with models/lz.vsgt commandline param,the application is crash.
OS: window10
vsg:the lastest master
vulkan:1.3.211.0
Console output:CompileTraversal::add(window =0000000000000000, view = 00000220D06A1740).
The call stack as follow:

vsgrendertotextured.exe!vsg::ref_ptrvsg::Device::valid() line 148 C++
vsgrendertotextured.exe!vsg::ref_ptrvsg::Device::operator bool() line 150 C++
vsgrendertotextured.exe!vsg::Window::getOrCreateDevice() line 120 C++
vsgrendertotextured.exe!vsg::CompileTraversal::add(vsg::ref_ptrvsg::Window window, vsg::ref_ptrvsg::View view, const vsg::ResourceRequirements & resourceRequirements) line 94 C++
vsgrendertotextured.exe!vsg::CompileTraversal::add'::2'::AddViews::apply(vsg::View & view) line 144 C++
vsgrendertotextured.exe!vsg::View::t_acceptvsg::View,vsg::Visitor(vsg::View & node, vsg::Visitor & visitor) line 42 C++
vsgrendertotextured.exe!vsg::View::accept(vsg::Visitor & visitor) line 45 C++
vsgrendertotextured.exe!vsg::Group::t_traversevsg::Group,vsg::Visitor(vsg::Group & node, vsg::Visitor & visitor) line 36 C++
vsgrendertotextured.exe!vsg::Group::traverse(vsg::Visitor & visitor) line 39 C++
vsgrendertotextured.exe!vsg::CompileTraversal::add'::2'::AddViews::apply(vsg::RenderGraph & rg) line 135 C++
vsgrendertotextured.exe!vsg::Inheritvsg::Group,vsg::RenderGraph::accept(vsg::Visitor & visitor) line 71 C++
vsgrendertotextured.exe!vsg::Group::t_traversevsg::Group,vsg::Visitor(vsg::Group & node, vsg::Visitor & visitor) line 36 C++
vsgrendertotextured.exe!vsg::Group::traverse(vsg::Visitor & visitor) line 39 C++
vsgrendertotextured.exe!vsg::CompileTraversal::add'::2'::AddViews::apply(vsg::Object & object) line 127 C++
vsgrendertotextured.exe!vsg::Visitor::apply(vsg::Node & value) line 423 C++
vsgrendertotextured.exe!vsg::Visitor::apply(vsg::Group & value) line 431 C++
vsgrendertotextured.exe!vsg::Visitor::apply(vsg::CommandGraph & cg) line 768 C++
vsgrendertotextured.exe!vsg::Inheritvsg::Group,vsg::CommandGraph::accept(vsg::Visitor & visitor) line 71 C++
vsgrendertotextured.exe!vsg::CompileTraversal::add(vsg::Viewer & viewer, const vsg::ResourceRequirements & resourceRequirements) line 152 C++
vsgrendertotextured.exe!vsg::CompileTraversal::CompileTraversal(vsg::Viewer & viewer, const vsg::ResourceRequirements & resourceRequirements) line 59 C++
vsgrendertotextured.exe!vsg::Inheritvsg::Visitor,vsg::CompileTraversal::create<vsg::Viewer &,vsg::ResourceRequirements &>(vsg::Viewer & <args_0>, vsg::ResourceRequirements & <args_1>) line 38 C++
vsgrendertotextured.exe!vsg::CompileManager::CompileManager(vsg::Viewer & viewer, vsg::ref_ptrvsg::ResourceHints hints) line 28 C++
vsgrendertotextured.exe!vsg::Inheritvsg::Object,vsg::CompileManager::create<vsg::Viewer &,vsg::ref_ptrvsg::ResourceHints &>(vsg::Viewer & <args_0>, vsg::ref_ptrvsg::ResourceHints & <args_1>) line 38 C++
vsgrendertotextured.exe!vsg::Viewer::compile(vsg::ref_ptrvsg::ResourceHints hints) line 211 C++
vsgrendertotextured.exe!main(int argc, char * * argv) line 434 C++

Compiling issues for vsgvolume example

Hi Team,

Unable to compile vsgvolume with following error
/home/vasanth/custom/include/vsg/core/Inherit.h:37: error: undefined reference to `vsgXchange::all::all()'

I can see that in vsgvolume.cpp there is no macro definition to skip vsgXchange, but i would like to use this feature.
Did I compile vsgXchange wrong, the error message is tricky, I used latest master branch for compiling vsgXchange and 1.0.9-rc1 for compiling vsg.

Thanks and Regards,
Vasanth

Building with mingw warns 'examples/io/vsgcluster/Broadcaster.h:32: warning: "NOMINMAX" redefined'

Cross compiling vsgExamples with gcc for Windows fails with the following error:

[  121s] cd /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster && /usr/bin/x86_64-w64-mingw32-g++  -DVSGXCHANGE_SHARED_LIBRARY -DVSG_SHARED_LIBRARY -DvsgXchange_FOUND  -O2 -g -pipe -Wall -fexceptions --param=ssp-buffer-size=4 -mms-bitfields -O2 -g -DNDEBUG   -Wall -Wparentheses -Wno-long-long -Wno-import -Wreturn-type -Wmissing-braces -Wunknown-pragmas -Wmaybe-uninitialized -Wshadow -Wunused -Wno-misleading-indentation -Wextra -std=gnu++17 -o CMakeFiles/vsgcluster.dir/Packet.cpp.obj -c /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster/Packet.cpp
[  121s] In file included from /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster/Packet.h:7,
[  121s]                  from /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster/Packet.cpp:5:
[  121s] /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster/Broadcaster.h:32: warning: "NOMINMAX" redefined
[  121s]    32 | #    define NOMINMAX
[  121s]       | 
[  121s] In file included from /usr/lib64/gcc/x86_64-w64-mingw32/10.3.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:522,
[  121s]                  from /usr/lib64/gcc/x86_64-w64-mingw32/10.3.0/include/c++/iostream:38,
[  121s]                  from /home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939/examples/io/vsgcluster/Packet.cpp:2:
[  121s] /usr/lib64/gcc/x86_64-w64-mingw32/10.3.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45: note: this is the location of the previous definition
[  121s]    45 | #define NOMINMAX 1
[  121s]       | 
[  121s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939'
[  128s] make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/vsgExamples-0.0.0+20220713+git.3ac4939'

It looks like in io/vsgcluster/Broadcaster.h:32 the macro NOMINMAX is defined unconditionally, but already defined by the mingw headers. If this value is needed as a fallback for other compilers that do not define this macro, it should be defined with #ifndef NOMINMAX ... #endif.

Some shader files are missing

For some of the vsgExamples shader files are missing in the repo. I.e.: simple_raygen.rgen for the raytracing example (as hit & miss do).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.