mosra on master
Containers: unify default *View… Containers: unify tests for nul… Containers: group StridedArrayV… and 40 more (compare)
mosra on next
Utility: ability to parse/retri… Utility: reorder test to a bett… Utility: add Json::commonArrayT… and 4 more (compare)
mosra on next
Containers: add StridedArrayVie… Containers: expand a comment so… Containers: minor. and 11 more (compare)
mosra on master
Animation: indent the Easing na… Animation: make Easing a templa… Animation: be less strict about… and 2 more (compare)
mosra on next
Animation: make Easing a templa… Animation: be less strict about… doc: regenerate SVGs for Animat… and 1 more (compare)
mosra on next
Animation: be less strict about… package/ci: reduce parallelism … (compare)
mosra on next
Animation: make Easing a templa… (compare)
mosra on next
Animation: indent the Easing na… Animation: make Easing a templa… (compare)
mosra on next
Containers: another workaround … Containers: and of course also … Containers: make StridedArrayVi… and 1 more (compare)
mosra on next
uhhhhh?? (compare)
mosra on next
Containers: new StridedBitArray… Containers: MSVC thinks the con… Containers: and more constexpr … and 8 more (compare)
mosra on next
UHHHHHHHHHHHHHHH (compare)
mosra on next
UHHHHHHHHHHH (compare)
mosra on next
uhhhhh (compare)
mosra on next
Containers: MSVC thinks the con… Containers: and more constexpr … Containers: and of course, MSVC… and 1 more (compare)
Ahhh discovered the error. This Magnum feature:
https://doc.magnum.graphics/magnum/classMagnum_1_1GL_1_1Shader.html#GL-Shader-errors
breaks shader compilation on Samsung phones (it's a Mali-G72 in my case), with this error:
P0005: #version must be the first directive/statement in a program
Are you specifying a GLSL version for your shader? or Version::None
GL ES 300
ONLY for Android. For other systems is GL 330
. The problem is this #line 1
thing:just to clarify:
Version::GLES300
/ Version::GL330
to the constructor, which will add the #version
directive automatically (recommended)Version::None
and then add a #version
directive directly in the source... but if i understand what you're saying, you somehow get a #line
line followed by a #version
line? :O
NoCreate
d instance and then when you have GL context ready, move over a properly created instance
BUILD_PLUGINS_STATIC
set to ON
, yet I still get these two errors every time: PluginManager::Manager::Manager(): none of the plugin search paths in {magnum-d/importers} exists and pluginDirectory was not set, skipping plugin discovery
and PluginManager::Manager::load(): plugin AnySceneImporter is not static and was not found in
when building with MinGW, however when building with MSVC it seems to correctly find all plugins, what might cause such behavior?
I managed to edit the Magnum source
@FoNz99089892_twitter i'm saying, this exact scenario should work without having to patch anything, i even have a test case for exactly that: https://github.com/mosra/magnum/blob/dbec10dbee8cc3c2b560c6e7de9166c2b6d2f002/src/Magnum/GL/Test/ShaderGLTest.cpp#L195-L225
Look at the source I linked
the question is instead, how does your source look? because this is definitely possible and it only looks like you're doing something differently that results in a #line
getting inserted before your #version
;) can you show me how the shader gets constructed and populated?
@linuxaged Vulkan support (the low-level APIs) are mostly done right now, what's missing is mostly a bunch of convenience APIs for shaders
right now i'm focusing on vulkan- (batch-) friendly scene import, because without that using Vulkan makes little sense, WebGPU is planned for the next months if I get funding for it
list(APPEND CMAKE_PREFIX_PATH lib/lpng1637)
add_dependencies(MyApp MagnumPlugins::PngImporter)
Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
_FPHSA_FAILURE_MESSAGE
StbImageImporter
instead, that one is dependency-less
can you show me how the shader gets constructed and populated?
GL::Shader vert{ GL::Version::GLES300, GL::Shader::Type::Vertex };
vert.addFile("shaders/screen_quad.vert");
CORRADE_INTERNAL_ASSERT_OUTPUT(GL::Shader::compile({ vert }));
In realty, I have both vert
and frag
, but I'm showing you only vert
. Anyway, I managed to fix this problem, which I think it was due to some bad action I was doing. This is surely not Magnum's fault, I am sure. Also, this error happened only on Samsung devices... don't worry.
and the
screen_quad.vert
has a#version
line on its own or not?
Excuse me, but I now progressed with my game development, so I don't remember exactly. I can't give you exactly details, but I remember trying both with #version 300 es
and without. But I repeat: I think it was my fault for doing something bad. I don't remember now. Anyway thanks!
MSVC2019_COMPATIBILITY
related warning, might this be the reason why?
MSVC 2019 detected, automatically enabling MSVC2019_COMPATIBILITY. Note
that some features may not be available with this compiler.
GL::Mesh::addVertexBufferInstanced()
). It works, however it still requires looping on all objects for updating the instance data with new transformations (e.g. when the camera moves), which makes it slow. Is there a strategy to update the transformation of all the objects at once? I'm using the PhongGL shader
PhongGL
has setTransformationMatrix
that gets applied after the instanced transformation
arrayAppend(_instanceData, InPlaceInit, t, t.normalMatrix(), _color);
with t
being relative to camera. So when it change, currently I must recompute everything
setTransformationMatrix()
Is MSVC supported with magnum?
@lectroMathew haha, yes it is, the CMake warning is because certain APIs behave slightly differently than they would with a standard-conforming compiler (usually with less safety checks), however if you code compiles with MinGW in the first place then it should run on MSVC too
release()
on objects)