Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
The QB64 IDE shell
Forum: Utilities
Last Post: JasonPag
09-16-2024, 05:37 PM
» Replies: 9
» Views: 762
|
Importance regarding Ches...
Forum: Utilities
Last Post: JasonPag
09-01-2024, 06:34 PM
» Replies: 0
» Views: 31
|
Chess and Analysis and En...
Forum: Utilities
Last Post: JasonPag
08-28-2024, 02:37 PM
» Replies: 0
» Views: 32
|
DAY 009:_PutImage
Forum: Keyword of the Day!
Last Post: grymmjack
09-02-2023, 02:57 PM
» Replies: 54
» Views: 2,034
|
Fall Banner Contest?
Forum: Site Suggestions
Last Post: grymmjack
08-31-2023, 11:50 PM
» Replies: 36
» Views: 1,261
|
ColorPicker - Function th...
Forum: Dav
Last Post: Dav
08-31-2023, 11:04 PM
» Replies: 3
» Views: 315
|
Goals(1) = New Tile()
Forum: Works in Progress
Last Post: RhoSigma
08-31-2023, 09:45 PM
» Replies: 3
» Views: 127
|
micro(A)v11
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 09:14 PM
» Replies: 90
» Views: 3,589
|
Updating The Single Most ...
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 09:13 PM
» Replies: 7
» Views: 254
|
QBJS Image Question
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 05:49 PM
» Replies: 5
» Views: 155
|
|
|
QB64-PE Patreon and Donations |
Posted by: SMcNeill - 01-09-2023, 11:53 PM - Forum: General Discussion
- Replies (18)
|
|
As you guys probably know by now, we just released a new version of QB64-PE -- version 3.5! One thing that's happened after this release, is that several people have sent me messages asking how they can donate or help support the project. I try and tell folks that isn't necessary -- our costs are minimal, with none of us accepting even a penny for our work and efforts on improving and upkeeping the language. The only thing we pay for is the server space here which keeps these forums and our wiki up and going, and I've been completely transparent with screenshots of what those cost us. (About $100 for the first year, and perhaps $300 a year moving forward.) Those costs are definitely not so large that we can't just pay them ourselves, for, like you, we love this project and the language itself.
But, I got fussed at today by someone who **really** wanted to show their support. "The rest of us love the language just as much as you guys! It's not fair that you get to support it, and the rest of us can't..."
So, I finally broke down and created a Patreon for us: https://patreon.com/user?u=86544769
If someone really feels that passionate about supporting us, and doesn't think they have the coding skills to help with the project, now they can drop a few dollars into the Patreon bucket and keep the lights on for us. Nobody should ever feel pressured to donate -- as I mentioned above, our overall costs is rather low and quite manageable, so only do so if you have disposable income burning a hole in your pocket and you absolutely feel like you want to give it to us.
Patreons get no added bonus. No extra weight in any decisions we make. No exclusive content. All we do and work on, we already offer FREE to anyone who wants it. The most our Patreons can expect is for us to continue on as we've always continued on. Maybe... if you ask *really* *really* hard, and you donate *lots* and *lots* of money, I *might* send you a picture of me sitting back in my lounge chair, eating Cheetos in my undies, and pretending to program while being completely distracted by Discord, the forums, my doggy, and the tv in the background...
Anywho, it's there now for those who absolutely want it. Rest assured, any money donated will only ever go to keeping the lights on around here. We don't do what we do for any sort of monetary gain. We just do it 'cause we love it!
|
|
|
QB64 Phoenix Edition v3.5.0 Released! |
Posted by: DSMan195276 - 01-09-2023, 03:56 PM - Forum: Announcements
- Replies (77)
|
|
QB64 Phoenix Edition v3.5.0!
https://github.com/QB64-Phoenix-Edition/...tag/v3.5.0
Enhancements - #46, #98, #250, #265, #272 - Added support for opening HTTP and HTTPS requests using _OPENCLIENT(). - @mkilgore
- Feature is current unstable and requires $Unstable:Http to use.
- On Linux and Mac OS this functionality requires libcurl to be installed.
- HTTP(s) connections are opened using _OPENCLIENT() and generally work the same as the existing TCP/IP streams.
- See the Wiki page on Downloading Files to see a complete overview of this functionality.
- #28, #279 - Added _SNDNEW(frames&, channels&, bits&) function which can be used to make new sound buffers of a predetermined number of frames. - @a740g
- The created sound buffer can be accessed using _MEMSOUND() to write sound data to it, and then played like any other sound.
- #232, #279 - Sounds can now be opened from memory using _SNDOPEN(sound$, "memory"). - @a740g
- The string provided to _SNDOPEN() in this case is not a filename, but instead contains the actual sound data that should be loaded into the new sound buffer.
- #280, #279 - Added support for playing Amiga AHX and HVL audio files. - @a740g
- They are played using _SNDOPEN() like any other audio file.
- #261 - The IDE's new open file dialog will now remember the previous directory it was open to. - @SteveMcNeill
- #264 - The error line color in the IDE is now configurable. - @SteveMcNeill
Bug Fixes
- #252, #276 - Wiki will now be downloaded using the new HTTP support, curl is no longer needed. - @RhoSigma-QB64
- #254 - _FONT settings that are invalid now produce an error rather than segfaulting. - @SteveMcNeill
- #256, #258, #266, #267 - Fixed the command line compilation output when using some commands like $NoPrefix. - @mkilgore
- #256, #257 - When compiling from the command line, the exe is now always located relative to the provided source file path. - @mkilgore
- #234, #260 - Programs now wait for GLUT to be properly initialized before starting. - @mkilgore
- #66, #270 - GLUT commands are now always executed on the correct thread. This fixes issues where some programs would randomly crash. - @mkilgore
- #262, #233 - $IF checks involving VERSION now correctly compare all segments of the version individually. - @SteveMcNeill
- Previously VERSION was compared as a string, which would have caused incorrect comparisons when the version numbers get larger.
- #275 - Reduced the number of times nm is invoked to resolve Declare Library functions. - @flukiluke
- #166, #279 - _SNDRAW is now fully implemented for the miniaudio audio backend - @a740g
- The OpenAL audio backend is likely to be removed in the next version of QB64-PE.
- #166, #279 - PLAY(n) now returns the number of sound samples left to play from PLAY, SOUND, or BEEP. - @a740g
- #167, #279 - The timing of SOUND and PLAY calls were improved so that they wait for the sound to finish playing. - @a740g
- #186, #279 - SOUND and PLAY now generate mono sound, reducing memory usage. - @a740g
- #217, #279 - The N command for PLAY now plays the note in the correct octave. - @a740g, @mkilgore
- #282, #284 - The long start-up time for QB64-PE programs has been fixed, there should no longer be a delay before the QB64-PE code starts running - @mkilgore
- #281, #284 - A use-after-free bug was fixed in some of the buffer logic for the HTTP code - @mkilgore
Full Changelog: v3.4.1...v3.5.0
|
|
|
IDE' mouse problem with 3.4.1 on macOS |
Posted by: Fifi - 01-09-2023, 08:00 AM - Forum: General Discussion
- Replies (8)
|
|
Hello,
The third mouse button (scrolling the content back and forth) doesn't work at all on the IDE under macOS.
Is there a fix planned soon since this problem was already reported long time ago and that without this capability, the IDE is almost unusable on a Mac.
TIA for news about that.
Cheers.
Fifi
|
|
|
<Solved> QB64PE 4.3.1 can't compile itself anymore. |
Posted by: Fifi - 01-09-2023, 04:32 AM - Forum: General Discussion
- Replies (2)
|
|
Hello,
when loading qb64pe.bas into QB64PE 3.4.1, there is an error message in the IDE saying :
Name already in use (DECLARE) on line 3911 (click here or Ctrl+Shift+G to jump there)
caused by (or after): A$ = "Expected SUB/FUNCTION definition or END", 39 DECLARE " : GoTo errmess",13
Can anyone help me to fix that?
TIA for your help.
Cheers.
Fifi
|
|
|
Suggestion: Preallocated file open |
Posted by: doppler - 01-09-2023, 01:01 AM - Forum: General Discussion
- Replies (13)
|
|
Windows can do it and I think Linux can too.
On a file open "preallocate" space to be used. AKA: no fragmentation is possible.
A command to open would look like: open "foo.txt" for output as #1 size=4096 <-- This would preallocate a file 4096k in size.
Of course this would not work for appending. I only suggest this because a lot of huge files I write out become fragmented.
Just a thought.......
It could get very messy........
|
|
|
Rainbow Text |
Posted by: SMcNeill - 01-08-2023, 09:47 PM - Forum: SMcNeill
- No Replies
|
|
You guys are *really* making me feel odd now, digging up remnants of the past as you are. What is this, an eulogy for poor Steve? "He was a great guy, that poor old Steve. Why just the other day, I found this on my drive that he did/helped me with/whatever...."
I'm not dead yet, dang it!!
Sheesh!! But, eulogistic or not, there's still no reason not to share some of these old gems. Thanks go to Terry for finding this one and returning it back into the fold with the rest that I've preserved here in this little Steve(tm) subforum.
Code: (Select All) fg& = _NewImage(1280, 720, 32)
white& = _RGB32(255, 255, 255)
Screen fg&
Print "This is a demostration of a simple RainbowText routine."
Print "One Command is being used to generate all the text which follows."
Print "Press any key to see some quick samples."
junk$ = Input$(1)
Cls
text$ = "This is sample text"
RainbowText text$, 0, 0, 380, 220, 0, 0, 0, 0, 0
RainbowText text$, 0, 180, 380, 380, 0, 0, 100, 100, 100
RainbowText text$, 0, 90, 300, 300, 0, 0, 150, 150, 150
RainbowText text$, 0, 270, 460, 300, 0, 0, 50, 100, 150
RainbowText text$, 1, 0, 100, 100, 0, 0, 10, 200, 0
RainbowText text$, -1, 0, 300, 100, 0, 0, 200, 200, 0
Locate 35, 40: Print "Press any key to watch what else you can do!"
junk$ = Input$(1)
Color , _RGB32(0, 0, 255)
direction = .25
Do
Cls
i = i + direction
RainbowText text$, 0, i, 500, 500, 0, 0, r, g, b
If i > 360 Or i < 0 Then direction = -direction
Loop Until InKey$ <> ""
_AutoDisplay
Locate 10, 10: Print "HA! Rotating text, and all from 1 simple routine."
Cls
f& = _LoadFont("times.ttf", 100)
Do
RainbowText text$, 0, 0, 500, 200, f&, 0, 255, 100, b
Loop Until InKey$ <> ""
_AutoDisplay
End
Sub RainbowText (text$, slant%, angle%, x%, y%, font&, b&, r, g, b)
A = _AutoDisplay: F = _Font: D = _Dest
dc& = _DefaultColor: bg& = _BackgroundColor
slant% = slant% + 1 'This keeps slant 0 as neutral
bgi& = _NewImage(100, 100, 32): _Dest bgi& 'temporary for sizing
If font& <> 0 Then _Font font&
length% = _PrintWidth(text$): height% = _FontHeight
_FreeImage bgi&
bgi& = _NewImage(length%, height%, 32) 'screen to draw to, the proper size
_Dest bgi&: If font& <> 0 Then _Font font&
Color _RGB32(255, 255, 255), b&
_PrintString (0, 0), text$
TLC$ = "BL" + Str$(length% \ 2) + "BU" + Str$(height% \ 2)
RET$ = "BD BL" + Str$(length%)
_Source bgi&
_Dest D
Draw "BM" + Str$(x%) + "," + Str$(y%) + "TA=" + VarPtr$(angle%) + TLC$
For y = 0 To height% - slant%
For x = 0 To length% - slant%
If Point(x, y) <> b& Then
r = r + 5
If r > 255 Then r = 0: g = g + 5
If g > 255 Then g = 0: b = b + 5
If b > 255 Then b = 0: r = 0
Draw "C" + Str$(_RGB32(r, g, b)) + "R1" 'color and DRAW each pixel
Else
Draw "B R1" 'color and DRAW each pixel
End If
Next
Draw RET$
Next
If Not A Then _Display: _AutoDisplay 'Remark this line out if you want to manually use _DISPLAY to show the text
_FreeImage bgi&
If font& <> 0 Then _Font F
Color dc&, bg&
End Sub
|
|
|
|