Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create new threading-aware canvas class #327

Merged
merged 39 commits into from
May 30, 2017
Merged

Create new threading-aware canvas class #327

merged 39 commits into from
May 30, 2017

Conversation

sbusch42
Copy link
Member

Lets refactor the canvas and mainloop here. It should be clearly designed and documented what methods and signals are to be used from what thread (UI thread or render thread) to make the new canvas class work on multithreaded viewers such as QtQuick.

@sbusch42 sbusch42 added the ready label May 19, 2017
Stefan Buschmann added 2 commits May 19, 2017 11:38
…ponentManager (so this doesn't need to be duplicated by all viewer implementations)
@sbusch42 sbusch42 changed the title [WIP] Create new threading-aware canvas class Create new threading-aware canvas class May 23, 2017
@sbusch42
Copy link
Member Author

Please test this on all platforms and give feedback to the new rendering and mainloop implementations

@sbusch42
Copy link
Member Author

Works on macOS

@sbusch42
Copy link
Member Author

Works on Windows

@sbusch42
Copy link
Member Author

Last call for feedback on this PR :)

@scheibel
Copy link
Member

From what I can see, the new Canvas handles virtual time updates internally. However, using the video exporter (e.g., ffmpeg video export), the virtual time is handled by the exporter. I suggest we re-add an interface to handle virtual time externally.

@sbusch42 sbusch42 added this to the 2.0 - stable core milestone May 30, 2017
@Tobias1595
Copy link

Right after startup the following error appears exactly 6 times on cerr:
#fatal: error: 0x500, high severity (API)
GL_INVALID_ENUM error generated. <pname> requires feature(s) disabled in the current profile.
After some searching, I found that these errors are produced by GLContextUtils::retrieveFormat().

It seems that GL_RED_BITS through GL_STENCIL_BITS are not part of the OpenGL 4.5 specification anymore (see lists in 4.5 glGet reference and 2.1 glGet reference)

Yet I haven't noticed any negative impact whatsoever though, but I also don't know, where these values are required at the moment. Neither do I know, why the very same code on the master branch runs without generating the error messages.

@sbusch42
Copy link
Member Author

Thanks for reporting that. Please make a separate issue, we should investigate it further.

@sbusch42 sbusch42 merged commit 87f7511 into master May 30, 2017
@sbusch42 sbusch42 deleted the canvas_refactor branch May 30, 2017 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants