Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schnelleres Pset rendering :)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Andt2018



Anmeldungsdatum: 22.12.2017
Beiträge: 7

BeitragVerfasst am: 22.12.2017, 18:19    Titel: Schnelleres Pset rendering :) Antworten mit Zitat

Für Kritik würe ich mich freuen, bin neu hier.. zwinkern
Code:

'Neues Pset

#undef pset

sub pset (y as uinteger,x as uinteger,c as ulong)
static s as ulong ptr
    static w as uinteger
    if s = 0 then
        s = screenptr
        screeninfo w
    end if
    s[(w*x)+y] = c
end sub

'Example

const sw = 800
const sh = 600
screenres sw,sh,32,2
dim as integer cx,fx
do
    cx+=1
   
    screenlock
    for x as integer = 0 to sh-1
        for y as integer = 0 to sw-1
            pset y,x,(x*y) xor rgb(x+cx,y+cx,cx)
        next
       
    next
    screenunlock
    sleep 2
loop until inkey <> ""

[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 949
Wohnort: Austria

BeitragVerfasst am: 22.12.2017, 22:27    Titel: Re: Schnelleres Pset rendering :) Antworten mit Zitat

Andt2018 hat Folgendes geschrieben:
Für Kritik würe ich mich freuen, bin neu hier..
Willkommen hier im Forum! Da ich den selben Code vorhin auch im englischen Forum gesehen hab, würde mich interessieren, ob der Code von dir ist?

Deine Berechnung der Pixel-Speicher-Adresse ist verbesserungsdürftig, da sie bei bestimmten Auflösungen nicht korrekt funktionieren wird. Anstatt der Bildbreite solltest du nämlich den Wert "Pitch" für die Zeilenlänge (in Bytes) verwenden, da am Ende jeder Zeile ungenutzte Bytes vorhanden sein können. Du hast übrigens X und Y vertauscht - X bezeichnet normalerweise die horizontale Koordinate, Y die vertikale.

Zur Pointer Berechnung siehe auch:
https://www.freebasic-portal.de/befehlsreferenz/interne-pixelformate-464.html
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz