Text Only
|
Text with Attachments
QB64.org Forum
Active Forums => Programs => Topic started by: MrFreyer on November 05, 2019, 05:37:32 pm
Title:
Noise Effect
Post by:
MrFreyer
on
November 05, 2019, 05:37:32 pm
...just a little noise-effect I want to share.
Code: QB64:
[Select]
DEFINT
A
-
Z
RANDOMIZE
TIMER
desktop.
width
=
_DESKTOPWIDTH
desktop.height
=
_DESKTOPHEIGHT
screenwindow.
WIDTH
=
800
screenwindow.height
=
600
SCREEN
_NEWIMAGE
(
screenwindow.
WIDTH
,
screenwindow.height
,
32
)
DO
:
LOOP
UNTIL
_SCREENEXISTS
_SCREENMOVE
(
desktop.
width
*
0.5
-
screenwindow.
WIDTH
*
0.5
)
,
0
_DISPLAY
CONST
pixelbytes
=
4
'4 bytes per pixel (RGBA)
DIM
pixelcolorRed
AS
_UNSIGNED
_BYTE
DIM
pixelcolorGreen
AS
_UNSIGNED
_BYTE
DIM
pixelcolorBlue
AS
_UNSIGNED
_BYTE
DIM
screenMemoryblock
AS
_MEM
screenMemoryblock
=
_MEMIMAGE
(
0
)
DO
FOR
y
=
0
TO
screenwindow.height
-
1
FOR
x
=
0
TO
screenwindow.
WIDTH
-
1
pixelcolorRed
=
(
RND
*
254
)
+
1
'pick random red pixelcolor-value from 1 to 255
pixelcolorGreen
=
(
RND
*
254
)
+
1
'pick random green pixelcolor-value from 1 to 255
pixelcolorBlue
=
(
RND
*
254
)
+
1
'pick random blue pixelcolor-value from 1 to 255
_MEMPUT
screenMemoryblock
,
screenMemoryblock.OFFSET
+
(
x
*
pixelbytes
)
+
(
y
*
(
screenwindow.
WIDTH
*
pixelbytes
)
)
,
pixelcolorRed
_MEMPUT
screenMemoryblock
,
screenMemoryblock.OFFSET
+
(
(
x
*
pixelbytes
)
+
1
)
+
(
y
*
(
screenwindow.
WIDTH
*
pixelbytes
)
)
,
pixelcolorGreen
_MEMPUT
screenMemoryblock
,
screenMemoryblock.OFFSET
+
(
(
x
*
pixelbytes
)
+
2
)
+
(
y
*
(
screenwindow.
WIDTH
*
pixelbytes
)
)
,
pixelcolorBlue
NEXT
x
NEXT
y
_DISPLAY
LOOP
UNTIL
INKEY$
<>
""
SYSTEM
END
EDIT:
...and the same program with PRESET instead of _MEMPUT. Would be slightly slower.
Code: QB64:
[Select]
DEFINT
A
-
Z
RANDOMIZE
TIMER
desktop.
WIDTH
=
_DESKTOPWIDTH
desktop.height
=
_DESKTOPHEIGHT
screenwindow.
WIDTH
=
800
screenwindow.height
=
600
SCREEN
_NEWIMAGE
(
screenwindow.
WIDTH
,
screenwindow.height
,
32
)
DO
:
LOOP
UNTIL
_SCREENEXISTS
_SCREENMOVE
(
desktop.
WIDTH
*
0.5
-
screenwindow.
WIDTH
*
0.5
)
,
0
_DISPLAY
DIM
pixelcolorRed
AS
_UNSIGNED
_BYTE
DIM
pixelcolorGreen
AS
_UNSIGNED
_BYTE
DIM
pixelcolorBlue
AS
_UNSIGNED
_BYTE
DO
FOR
y
=
0
TO
screenwindow.height
-
1
FOR
x
=
0
TO
screenwindow.
WIDTH
-
1
pixelcolorRed
=
(
RND
*
254
)
+
1
'pick random red pixelcolor-value from 1 to 255
pixelcolorGreen
=
(
RND
*
254
)
+
1
'pick random green pixelcolor-value from 1 to 255
pixelcolorBlue
=
(
RND
*
254
)
+
1
'pick random blue pixelcolor-value from 1 to 255
PRESET
(
x
,
y
)
,
_RGB
(
pixelcolorRed
,
pixelcolorGreen
,
pixelcolorBlue
)
NEXT
x
NEXT
y
_DISPLAY
LOOP
UNTIL
INKEY$
<>
""
SYSTEM
END
Title:
Re: Noise Effect (with _MEMGET / _MEMPUT)
Post by:
SierraKen
on
November 05, 2019, 09:36:40 pm
LOL pretty cool effect!
Title:
Re: Noise Effect (with _MEMGET / _MEMPUT)
Post by:
johnno56
on
November 05, 2019, 09:45:10 pm
When I read "Noise Effect" I reached for the headphones.... Cool... "visual" static... Ok. You can stop laughing now...
Text Only
|
Text with Attachments