Comments (30)
Been trying a new approach that you may care to test. Branch SDLfix. Uses a back buffer of a full screen texture and render to texture features. This seams to work on SDL 2.0.10 MacOS, but I have issues running it on my Ubuntu VM (VirtualBox GL driver is not great !) and on Windows SDL 2.0.10 just crashes on the texture create call :(
But you can try this branch and swap between dual and single buffer modes using the setting at the top of gui/gui.vp:
(defcvar 'dual_buffers nil) t|nil here
Don't forget to do a 'make boot' in the ChrysaLisp terminal and then relaunch.
Let me know how you get on with this. Thanks
I may merge this into the master branch and set it to default to t, dual buffering until SDL fixes the crash on Windows and the Linux issues. This doesn't fix the WINDOW_RESTORE min/max event missing though. But this does cure the triple buffering and lost context on virtual screen scrolling issues.
from chrysalisp.
I've since been trying to take a new screenshot for the README.md file with a wallpaper and I had some screen flickering issues after resizing the window as well. Resolves after switching to and from fullscreen.
from chrysalisp.
This works here, which is not to say you're not seeing an issue. I had serious problems with SDL 2.0.8 but 2.0.9 did seam to have fixed this.
One thing I have noticed recently after 2.0.9 is that I sometimes notices a small delay, almost like a GC is happening. I'm not ruling out that this may be the same issue somehow.
Is anyone else seeing this issue ? I'll try to test on my Ubuntu 18.04 test setup too.
Do you find if you drag a window around the black areas redraw ?
Chris
from chrysalisp.
The symptoms also seams to suggest that the dual buffering is an issue. There are 2 frames, each is updated every other frame, so as you press each key that would cause a switch to the next buffer, sounds like one of them isn't redrawing when you see that flick to black and back on key pressing.
from chrysalisp.
Checked on my Ubuntu 18.04 VM and all is working there with resize, full screen, min/max.
from chrysalisp.
I’m wondering if there is some conflicting library that is causing them issue. Your machine does have hidpi, yes?
from chrysalisp.
I just tried on my older 2014 MacBook, High Seira OS. That work fine too. But slight difference when resizing, the screen is black while resize until you let go and then the ChysaLisp desktop rebuilds.
My normal machine is a MacBook Pro (15-inch, 2018) with Mojave, and that shows a scaled version of the window as you resize.
Both are retina screens, but I don't run in full hidpi mode as my eyes are too bad. I run in scaled mode, I'll do some test on that now !
from chrysalisp.
Here is my main executable compiled just now. Just unzip that and see if ./run.sh is any better. I noticed when SDL 2.0.8 was going wrong that compiling on my High Sierra MacBook would fix the problem. So give that a try as a test.
from chrysalisp.
Another thing I noticed on SDL 2.0.9 was that the caps lock key mod is broken ! It worked fine in 2.0.8. so SDL has had a few issues recently. If you have caps on you'll notice that the GUI terminal doesn't do it !
from chrysalisp.
Bring up your TUI, with ./run_tui.sh, type 'make all boot'. cntrl-c out then ./run.sh just to make sure your boot_image is good.
At this point I'm a bit stuck for suggestions :(
from chrysalisp.
If I turn off dual buffering support, see the top of gui/gui.vp, (defcvar 'dual_buffers t) and remake the boot_image, I replicate what you're seeing. But the only way you could be showing that issue when you have got dual_buffering on is if you had triple buffering turned on somehow ?
from chrysalisp.
I upgraded my SDL to the latest version from the SDL website and I can see the problem now ! I definitely see 3 separate frame buffers ! So I will investigate if I can fix things ! Good spot for noticing this ! Thanks
from chrysalisp.
Also, broken virtual screen scrolling, min/max restore notification and various other things :( This could be that they have changed the ABI or enums for these events, I will look into that.
On the good side, they have fixed the caps lock key problem......... lol :)
from chrysalisp.
Here is the older SDL frameworks that worked ! I'll put these in the repo if you say this fixes things for you. I can't be certain when or if SDLs crew will fix things, good job I kept a backup of this version ;)
SDL_MacOS.zip
from chrysalisp.
Some more info. SDL 2.0.10 is not sending the SDL_WINDOWEVENT_RESTORED event after returning from minimised state ! It is also loosing the GL context if the window goes off screen (during a virtual screen scroll etc) and not sending an SDL_WINDOWEVENT_EXPOSED event or anything useful to help restore things. It is freezing the update of the window during a virtual screen scroll (didn't used to do that) and switching to tripple buffering in full screen mode (which it didn't do or need to do) :(
SDL 2.0.10 really does seam to have broken lots of things !
from chrysalisp.
Hey Chris,
Sorry for the late response. The holidays are very hectic right now. I should be somewhere stable enough to I’ll try things out sometime this afternoon, and let you know which ones yield the best results. I also have VMWare Fusion so I can try some flavor of Debian and report back on that.
from chrysalisp.
Also, broken virtual screen scrolling, min/max restore notification and various other things :( This could be that they have changed the ABI or enums for these events, I will look into that.
On the good side, they have fixed the caps lock key problem......... lol :)
Caps lock keys are good.
I’ve my caps lock and ctrl keys mapped backwards. There’s a nub where my index finger ought to be, and it makes my hopping back and forth between d and f a bit easier (mostly in Linux)
from chrysalisp.
Just did a cursory test of the most recent updates with MacOS on my machine. After switching the flag to nil, everything seemed to be much improved. MacOS doesn't seem to bothered either way.
Ubuntu seems to operate without much hinderance.
As you said the resize of windows is broken, but the windows visible, so that's something. Outstanding work here.
from chrysalisp.
Thanks for the testing. I’m not happy with this render to texture way of doing things. It’s definitely slower than previously as it requires a full screen sized texture blit per update. Even if you only change a single pixel ! So you notice it on platforms like the Raspberry PI which didn’t have the memory bandwidth of a desktop.
So that’s why I’ll default to the dual buffer method and hope SDL future versions start to operate as they did previously.
Technically they are within spec to switch to triple buffering. They would even be in spec to wipe every frame to black after it becomes the back buffer. GL spec is vague on this, in the dual buffer method I’m relying on most implementations not clearing the back buffer on a swap, or inserting another buffer like when switching to triple buffering.
from chrysalisp.
Would standard resolutions help at all? Host windows being kept in 4:3 16:9, etc? Does this create problems that you want to avoid or does it not really help? I'm satisifed with the current fix for now. I've had the system up and running without issue in both linux and macos for nearly 24 housr with no prooblem.
from chrysalisp.
Resolution isn't the issue, but having some menu options for standard values might be nice, it's how SDL has changed and/or broken their buffering and expose events. I'm sure they will resolve things in the next release, they did so with the 2.0.8 problems.
If they don't get resolved then I'll just have to do my own host window layer and remove SDL from the hosted versions, I hope I don't have to do that, but I had to do a similar thing with NASM.
I pushed an update with a more flexible buffering system yesterday BTW.
We might benefit from a few standard resolution versions of the wallpaper image though, so we have maybe 640x480, 1280x1024 and 1920x1080 or such to pick from before the resize ?
from chrysalisp.
I should be able to have those up today or tomorrow. I've been visiting with family and they've been a constant disruption to doing other things. :)
from chrysalisp.
So, the original wallpaper file wasn't backed up. It felt a bit blurred anyways. Here is a new one, that is similar. Hopefully you'll like. Otherwise we can just scale what we have and I can work on another iteration.
wallpaper.zip
from chrysalisp.
I really don't like the black outlines on this version ! The previous version worked really well, but there is something very disturbing about those black outlines !
BTW best wishes on the new decade etc !
Just pushed some a new doc file on the messaging system that might be a good read for you.
Thanks you for your contributions ! They are most appreciated.
from chrysalisp.
Sorry for such intermittent communication as of late. My wife is off of work for the holidays, so I'm spending a great deal less time on projects than I normally do.
I'll work on the logo again this week. I honestly can't tell what happened to the currently used wallpaper. I'll try to do something more inline with the original. I'm still not entirely sure what happened to the original.
from chrysalisp.
Turns out I had most of the ingredients in an old file. What do you think about this one? I particularly like the addition of the butterfly shadow, but if you don't like it I can change it easily enough. I used Affinity Designer to create the logo and the wallpaper, but I can export to PSD if you want to do any modifications personally.
ChrysaLisp1280x960.tga.zip
I can add the relevant sizes if you like it. What license do you think it should be released under? I'm not particular about it, but I would like to retain some form of attribution. I have no interest in keeping copyright over such things, and I don't want you to feel like it can be snatched or that you lose ownership of the OS in anyway.
from chrysalisp.
Yes, that looks really nice ! Very clean, love the shadowing as well.
We do need to agree on the copyright situation if we are to adopt this as the official logo/wallpaper, I want to make sure you get the recognition for this design, but yes we must have the ownership transferred to the 'project' or 'company' if such is created for the project.
IANAL ! But if we have these threads to show intent to allow the project to own the design then I'm sure that will be ok. As I say I will insist as things go forward that you get the recognition you deserve for doing these ! Nice job !
Chris
from chrysalisp.
I'll work on getting standard sizes packed tomorrow then. I'm glad you like this one, because it's my favorite.
from chrysalisp.
Here are the wallpaper sizes you requested. As for the images, will the following do for a very basic statement of copyright transfer for now. If we need to refine it later, that's fine:
Copyright for images created by Gary Boyd for the ChrysaLisp OS is transferred to the project developer, Chris Hinsley. Attribution for creation of these works should be included in distribution of ChrysaLisp OS or derived works in which they appear. No warranty is given, and no liability for use or distribution is expressed or implied by the works' original copyright holder.
from chrysalisp.
Many thanks, I will add this text to the wallpaper app along with the new selection of images !
Chris
from chrysalisp.
Related Issues (20)
- Transition Log Service to new IPC and data exchangers HOT 1
- Fix yaml string quote compounding
- Display scaling options? HOT 5
- src/main.cpp:37:11: fatal error: 'SDL.h' file not found HOT 5
- Package manager needed HOT 3
- @Chris HOT 16
- Containers woven in to foundations HOT 1
- Interprocess communication port needed HOT 4
- WYSIWYG interface builder HOT 6
- A browser for ChrysaLisp pages. HOT 10
- WebDriver compatible functional UI clicking test automation HOT 1
- reload definitions in lisp HOT 3
- error while compiling HOT 3
- error HOT 1
- rather a request: RISCV would be great HOT 10
- SDL2 dep for building on Macs - tweaks needed? HOT 9
- Bootstrapping ChrysaLisp on ChrysaLisp? HOT 10
- README feedback HOT 5
- Transparent windows HOT 1
- Can it run Doom? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chrysalisp.