amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Suche [ - Suche - Neue Beiträge - Registrieren - Login - ]

Erste << 50 51 52 53 54 -55- 56 57 58 59 60 Letzte Ergebnisse der Suche: 1858 Treffer (30 pro Seite)
Reth   Nutzer

10.11.2004, 21:12 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

;(

Irgendwas stimmt leider immer noch nicht!
Habe nun das Bild 112 Pixel breit und 80 Pixel hoch von ArtPro in Chunkydaten ausgeben lassen (von denen ich denke, dass sie OK sind).

Im Porgramm lass ich aber nur bis zur Breite 100 WP8() arbeiten mit folgendem Code:

struct RastPort rp, rpTemp;
struct BitMap *tempBitMap;

bitMap = AllocBitMap(100, 80, 8, BMF_DISPLAYABLE, friendBitMap);
tempBitMap = AllocBitMap(100, 1, 8, 0, bitMap);

InitRastPort (&rp);
rp.BitMap = bitMap;
rpTemp = rp;
rpTemp.Layer = NULL;
rpTemp.BitMap = tempBitMap;
WritePixelArray8 (&rp, 0, 0, 99, 79, data, &rpTemp);

FreeBitMap(tempBitMap);


friendBitMap ist dabei die BitMap des 1024x768 Fensters, in das geblittet werden soll.

Oder darf ich letztere nicht dazu nehmen, weil sie ne andere Größe hat?

Ciao
 
Reth   Nutzer

10.11.2004, 12:44 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@Holger

Zitat:
Original von Holger:
Genauso wie bei WPA8. Du gibst den RastPort an, er benutzt dessen BitMap und wenn vorhanden Layer. Du kannst also auch in eine friend-BitMap schreiben, und diese dann auf den Bildschirm schreiben.


Danke!
 
Reth   Nutzer

10.11.2004, 12:42 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@whose

Danke für Deine Tips und Hilfen.
Hoffentlich kann ichs heut noch ausprobieren.

Wenn alles nix hilft, bleibt ja noch der(Um-)Weg :D , den Thomas gestern aufgezeigt hat, laden mit Datatypes oder WriteChunkyPixel.

Ciao
 
Reth   Nutzer

10.11.2004, 11:37 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von thomas:

Für Read/WritePixelArray8 muß die Anzahl Bytes pro Zeile durch 16 teilbar sein. Wenn ArtPro nur genau die Breite des Bildes abspeichert, funktioniert es evtl. nicht.


Danke! Das wird des Rätsels LÖsung sein!

Wie füllte man denn UBTYE-Arrays von Bildern auf, deren Breite nicht durch 16 teilbar ist? Mit 0-Bytes? Links dran in der Zeile, oder rechts?

Zitat:
Ich habe auch schon gesehen, daß bei Bitmaps, die mit Datatypes geladen wurden, die Bytes pro Zeile durch 128 teilbar waren, obwohl das Bild selbst wesentlich kleiner war. Also ich vertraue solchen Programmen nicht so sehr, ich mache es lieber selbst (siehe dt2xxx), dann weiß ich genau, was rein geht und was raus kommt.

Den Code schau ich mir auch nochmal an!

Danke!
 
Reth   Nutzer

09.11.2004, 21:07 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von thomas:

Ich vermute, dein Problem liegt darin, daß ArtPro die Daten immer noch planar ausgibt. Ich kenne das Programm nicht. Du hast irgendwo geschrieben, daß du zwischen long, word und byte wählen kannst. Das heißt aber noch lange nicht, daß die Daten auch von planar nach chunky umgerechnet werden.

Du kannst dein Bild ja mal mit dt2chunky umwandeln und dann mit deinen Daten vergleichen.


Werd ich mal tun. Hab ArtPro in dieser Hinsicht vertraut bekomme auch genausoviele Bytes wie Pixel in dem Bild sind.

Hier meine Einstellungen im Chunky-Saver:
Output: Source
Type: Byte
Byte Type: Right
Language: C
Width: Byte
LineEntries: 8

Bild: http://WizardGrounds.powerserver24.de/examples/ArtPro.png

Also soweit so gut.
Kann ja gern auch mal das UByte-Array posten, aber das würde zuweit führen.

Hier ein Link auf das Array:
http://WizardGrounds.powerserver24.de/examples/See_neu.h



Und hier das Bild:
http://WizardGrounds.powerserver24.de/examples/See.pic


Und hier das Ergebnis X( :
http://WizardGrounds.powerserver24.de/examples/Kaputt.png


Zitat:
Wenn du die Bitmaps dann an das Bildschirmformat anpassen möchtest, kannst du es auch so machen:

struct BitMap eingebauteBitmap = {...}; /* siehe huhn.c */

struct BitMap *arbeitsBitmap = AllocBitMap(...,friendBitMap);
BltBitMap (eingebauteBitmap,...,arbeitsBitmap,...);


Und später dann nur noch:

BltMaskBitMapRastPort(arbeitsBitmap,width,height,fensterRP,...);


Auch nicht schlecht die Idee. Zwar ein kleiner Umweg, aber machbar.
Danke!

[ Dieser Beitrag wurde von Reth am 09.11.2004 editiert. ]
 
Reth   Nutzer

09.11.2004, 20:27 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@Thomas

Herzlichen DAnk für die Beispiele.

Stimmt den mein Code zum lesen eines UBYTE-Arrays in eine BitMap, den ich hier gepostet hab (auch aus einem Deiner Beispiele)?

Wenn ja, kann ich das schon mal als Fehlerquelle ausschliessen.
 
Reth   Nutzer

09.11.2004, 20:21 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@bubblebobble

Danke für die Antwort.

Zitat:
Original von bubblebobble:
Also:

RAW Daten haben keine Bytes per row Information
gespeichert, das ist doch logich. Sonst wären
sie ja nicht "RAW".


GEnau das war auch meine Überlegung.

Zitat:
Du musst aber dafür sorgen, dass die Bitmap, in die
du sie hineinkopiert, gleiche Dimensionen hat.
Bei einem Chunky Byte pro Pixel ist BytesPerRow=Breite in Pixeln.


Ich hab genau so viele Byte wie Pixel in meiner 8Bit Grafik und die Dimensionen der BitMap Stimmen auch.

Zitat:
Und nochmal:
DU DARFST KEINE ANNAHMEN ÜBER DIE BITMAPSTRUKTUR MACHEN.


Genau aus dem Grund hab ich meine Code ja geändert und hab nun das zuletzt beschriebene Problem!
Kann denn WritePixelArray8() nicht für alle Arten von BitMaps verwendet werden? In der Dokumentation dieser Funktion hab ich nix dazu gesehen.

Zitat:
Deshalb mein Vorschlag: erstelle erstmal eine temporäre
Bitmap, die auf jedenfall 8 Bit Chunky ist. Dann blitte
sie auf die Friend-Bitmap. Der BltBitmap Befehl macht
das dann schon richtig. Wenn du eine "Friend" Bitmap
allocierst, dann hängt das Format von der verwendeten
Grafikkarte ab.


Wie geb ich denn beim Erstellen der BitMap deren Format an?
Mit AllocBitMap() oder InitBitMap geht das jedenfalls nicht.

Ich erstell ja ne leere BitMap und schreibe die Grafikdaten mit WritePixelArray8() hinein. Ich dachte, das ist ne saubere und sichere Sache. Ist sie nun doch nicht?

Zitat:
Den ganzen Kram nehmen dir die Datatypes ab. Dafür sind sie
gedacht. Also wenn die Daten nicht UNBEDINGT Raw sein müssen,
dann verwende ein ordentliches Dateiformat mit Datatypes.
So ist das auch von AmigaOS gedacht.
Dann ist es auch wurscht, ob der Screen 8bit, 16 oder 24 bit hat,
es wird überall laufen.


Datatypes wären für mich nur das letzte Mittel. Muss doch auch so irgendwie gehen. Mit planaren BitMaps und struct BitMap Variablen (keine Zeiger!) gings immer und überall problemlos, egal ob AGA oder CGX.

Ciao



[/quote]


 
Reth   Nutzer

09.11.2004, 13:08 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von whose:
Hallo Reth ;)

Das mit dem zweistelligen Eingabefeld ist aber bissi seltsam... immerhin konnten selbst die seligen 1000er-Amigas Auflösungen von 640 Pixeln per Zeile darstellen ;)


Vielleicht nur an planare BitMaps gedacht?

Zitat:
Deine Vermutung stimmt teilweise, sofern die Pixel tatsächlich fein säuberlich nacheinander als Bytes ohne Zusatzinformationen gespeichert wurden. Die Anzahl der Einträge pro Zeile des Arrays hat letztendlich keine Bedeutung, da ein C-Compiler für AmigaOS dieses freundlicherweise "am Stück" im Speicher ablegt. So lange "BytesPerRow * Bildzeilen = Arraygröße" gilt, paßts. Ich hab aber immer noch den Verdacht, das all dies nicht passiert, wenn Du den Source mittels ArtPro erzeugst.

Die Anzahl der Byptes stimmt zumindest mit der Annzahl der Bildpixel überein.

Zitat:
Das ist korrekt, so lange das Format der Pixel mit dem übereinstimmt, was gemeinhin als "Chunky" bezeichnet wird. Also Bytes, deren Zahlenwert dem gewünschten Palette-Index entspricht, sonst nix. Und auch keine weiteren Informationen in dem UBYTE-Array untergebracht werden. Kann es sein, das ArtPro auch die Palette in dem Array ablegt?

Das weiss ich nicht. Von der Anzahl der Bytes her kanns jedenfalls nicht sein.

Zitat:
Mach doch mal folgendes:

Erstelle ein Bild. In der ersten Zeile setzt Du jeweils ein Pixel mit Palette-Index 1, dann eins mit Index 0 und dann wieder eins mit Index 1 (die tatsächlichen Farben spielen keine Rolle). Die zweite Zeile
bemalst Du mit drei Pixeln mit dem Palette-Index 255.

Ist ein winziges Bild, aber das ist dafür einfacher zu durchschauen ;)

Das Bild behandelst Du dann mit ArtPro, so wie Du Deine anderen Grafiken auch umgewandelt hast und das Ergebnis schickst Du mir dann mal per Mail. Dann schaue ich mir das mal an und werde dann sehen, ob die Pixel so in dem Array abgelegt werden, wie sie sollten (BytesPerRow = 3, Chunky).

Sollte bei der Aktion ein UBYTE-Array mit mehr oder weniger als 6 Einträgen herauskommen dann ist etwas faul ;)


Danke für das Angebot, kann ich gern mal tun! Hoffe, ich komme heut noch dazu!

Ciao
 
Reth   Nutzer

09.11.2004, 12:10 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von Holger:
Was WritePixelArray8 ursprünglich macht: Deine chunky-Daten nach planar konvertieren, mit den planaren Daten der Ziel-BitMap verknüpfen, gemäß der im RastPort eingestellten Modi.
Was es demzufolge auf Grafikkarten macht: Deine chunky-Daten nach planar konvertieren, die Chunky-Daten der Ziel-BitMap nach planar konvertieren, die planaren Daten logisch verknüpfen und danach wieder nach chunky konvertieren.
Abgesehen davon, daß dieses hin- und kerkonvertieren für das, was Du willst, absolut unnötig ist, folgt daraus, daß das (vermutlich) nur funktionieren kann, wenn die temporäre BitMap planar ist.


Das ist ne Menge Holz.

Zitat:
Benutze WriteChunkyPixels und Du hast diese Probleme erst gar nicht. Keine logische Verknüpfung, keine temporäre BitMap/RastPorts, keine Probleme damit.

Also am besten 2 Routinen, eine für AGA und eine für Graka machen? Denn ich denke WriteChunkyPixels erzeugt unter AGA wieder mehr Overhead. Muss mir die Funktion nochmal anschauen. Aber mit WriteChunkyPixels() schreib ich dann die Daten in meine BitMap, nicht in den RastPort des Zielfensters, meinst Du hoffentlich - oder?

Ciao
 
Reth   Nutzer

09.11.2004, 10:32 Uhr

[ - Direktlink - ]
Thema: Drucken im Netzwerk
Brett: Amiga, AmigaOS 4

Hi,

also fürs Drucken im Netzwerk brauchst Du dann vielleicht Samba auf dem Amiga oder eine andere Software, die es Dir erlaubt den Drucker im Netzwerk auf Deinem Amiga einzubinden. Mit der Konfiguration des Ganzen kenne ich mich aber nicht so gut aus. Habs selbst mal probiert über Swat und ne Anleitung, hat aber leider nicht geklappt.

Es gibt aber weitere Möglichkeiten.
Verfügt Dein Router über nen Druckerport (so wie bei mir) und Du willst den Drucker als Netzwerkdrucker einrichten, ist das PC-seitig kein Problem. Für den Amiga weiss ich da momentan nich, was man machen muss (mit Samba o.ä., s.o.).

ABER:

Hier nun die Lösung, die ich daheim verwende:

Mein DSL-Router hat nen Druckserver, über diesen sprechen die PCs im Netzwerk den Drucker an. Der Drucker ist per USB-Kabel mit dem Router verbunden.

Wenn Du nun auch in der glücklichen Lage bist, nen Drucker zu haben, der USB- und Paralleleingang hat, dann mach's wie ich und steck den Amiga über ein Parallelkabel direkt in den Prallelport des Druckers.
Das Ganze klappt bei mir wunderbar (hab allerdings noch nie probiert gleichzeitig von Amiga und PC zu drucken, mir aber sagen lassen, dass der USB-Anschluss am Drucker Vorrang hat).

Es sei denn Du willst den Amiga nicht mittels Parallelkabel anschließen?!

Ciao
 
Reth   Nutzer

09.11.2004, 09:21 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Hallo whose :D

Zitat:
Original von whose:

Ich hätte da noch ne Idee:

Kann ArtPro die Bitmaps auch als Binärdatei (RAW) im Chunky-Format speichern? Dann könntest Du diese Datei mit nem passenden Konverter wieder zu Source machen und die BytesPerRow stimmen dann automatisch. Wenn die Grafik dann immer noch zerhackt ist, liegts an ArtPro.


Das kann es allerdins. Es hat nen Saver im Raw-Format.
Ich find das Programm eh klasse! Du kannst bei den Savern und Loadern alles konfigurieren.
Du gibst die Sprache an, für die gespeichert werden soll, das Format, die BytesPerRow (da allerdings nur ein 2stelliges Eingabefeld) usw.

Stimmt es dann, was ich vermute:
Wenn ich die Grafik im Chunkyformat habe brauche ich bei 8Bit Tiefe soviel Bytes in einer Reihe des Feldes, wie ich Pixel in einer Zeile der Grafik habe?
(Ist allerdings komisch, da es ein normales UBYTE-Array ist, in dem alle Einträge mit Komma getrennt sind. Dann ist es doch egal, wieviel Bytes in einer Zeile dieses Arrays stehen oder? WritePixelArray8() nimmt sich doch für jede Zeile soviel wie es braucht, oder nicht?

Ciao
 
Reth   Nutzer

09.11.2004, 07:40 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@bubblebobble

Also an den BytesPerRow könnts evtl. liegen.
Hab Bilder in der Größe 100x80 und die Chunkydaten aber nicht mit 80 BytesPerRow gespeichert (ist mir gestern noch eingefallen).

Werde das mal proberen. Leider speichert ArtPro nur bis 99 BytesPerRow, so dass ich das manuell nachtragen muss.

Ansonsten werd ich wohl doch noch auf Datatypes zurückgreifen müssen, was ich eigentlich nicht wollte.

Die BitMaps, die ich für meine Bilder allokiere bekommen als FriendBitMap schon die BitMap des Fensters mit, in dem sie später erscheinen sollen!

Vielleicht komm ich heut abend dazu Dir nen Screenshot zu schicken.

Ciao
 
Reth   Nutzer

08.11.2004, 22:29 Uhr

[ - Direktlink - ]
Thema: Meinungen gesucht: Connexion oder XSurf
Brett: Amiga, AmigaOS 4

Drum kann ich mich ja auch noch nicht entscheiden!

Hab momentan beide Karten drinne und wechsle gelegentlich.
 
Reth   Nutzer

08.11.2004, 21:59 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

@bubblebobble

Mach eigentlich nix besonderes.

Ich hab Bilder mit PPaint gemalt, mit ArtPro die benötigten Teile herausgeschnitten und abgespeichert.
Das lief alles auch schon ganz gut, solange ich planare BitMaps verwendet habe und die PlanePointer von Hand zuwies (in ArtPro hab ich die Daten entsprechend gespeichert und die UBYTE-Felder bekommen).
Dann hab ich angefangen die BitMaps mittels AllocBitMap() zu allokieren, anstatt

struct BitMap bitMap;

weiterzuverwenden.

Mit AllocBitMap hab ich anfangs die Planepointer auch von Hand zugewiesen. Dann gingen zwar die Grafiken noch, aber es gab dann Probleme beim Freigeben der BitMaps, die Privilegverletzung!

Dann bin ich dazu übergegangen, die DAten mittels TempRastPort und TempBitMap wie aus einem Beispiel von Thomas in die BitMaps zu schreiben. Das gab dann keine Fehler mehr bei FreeBitMap() dafür waren die Grafiken zerschossen.

Also probierte ich in ArtPro die Grafikdaten in anderen Formaten zu speichern. Erst als Interleaved BitMaps, dann im Chunkyformat.

Nix half. Um die Maske als Fehlerquelle auszuschließen hab ich die Grafiken zum Test ohne Maske geblittet.

Die Farben stimmen zwar, aber die Darstellung nicht!

Die Farben lade ich mit LoadRGB4(). Die Palette habe ich mir von PPaint geben lassen.

Ich benutze ausschließlich 8Bit Tiefe Screens und Grafiken.

Das wars im großen und ganzen.
 
Reth   Nutzer

08.11.2004, 21:06 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Jetzt versteh ich gar nix mehr!

Habe mir die Daten von ArtPro nun im Chunkyformat (UBYTES) speichern lassen und mittels WritePixelArray8() in die BitMap geschriebe.
Lediglich die Maske ist noch im planaran Format gespeichert was aber nichts machen sollte, da es eh nur eine BitPlane ist!

Woran kann denn das nun noch liegen, dass die Grafiken falsch angezeigt werden? Hab in ArtPro Right als Byte Type angegeben.

Oder brauch ich bei Chunkydaten ne andere Anzahl Bytes per Row als im planaren Fall?

Schreibt WritePixelArray8() die Daten immer richtig in die BitMap, egal ob diese im Chunky oder Planar Format vorliegt?

Oder muss ich den temporären RastPort noch irgendwie anders initialisieren?

[ Dieser Beitrag wurde von Reth am 08.11.2004 editiert. ]
 
Reth   Nutzer

08.11.2004, 13:12 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von Reth:
Nun ja, ArtPro schreibt die Daten in UBYTE-Felder und für das Einlesen von Bildern in BitMaps hab ich kein Codebeispiel gefunden und die Sache mit planaren BitMaps und UBYTE-Feldern schien prima zu funktionieren!


Muss mich korrigieren, bei ArtPro kann man angeben, ob man Byte-, Word- oder Longdaten haben will (also 8Bit, 16Bit oder 32Bit).

Leider hab ich in ArtPro noch keine Möglichkeit gefunden die Daten im Chunkyformat zu speichern, werd aber mal den Konverter ausm Aminet probieren oder andere Funktionen zum Beschreiben der BitMap.
 
Reth   Nutzer

08.11.2004, 10:32 Uhr

[ - Direktlink - ]
Thema: X-Surf Genesis meint kann xsurf.device Unit 0/1 nicht finden?
Brett: Amiga, AmigaOS 4

Also das hats gebracht. Hab nun beide Karten drinne und das X-Surf Interface in Genesis vor dem ConneXion.
Beim Booten setze ich immer die Karte auf Auto-Online, die ich angesteckt habe. Wenn man das ändert ist leider ein Neustart nötig.

Ciao
 
Reth   Nutzer

07.11.2004, 22:08 Uhr

[ - Direktlink - ]
Thema: Meinungen gesucht: Connexion oder XSurf
Brett: Amiga, AmigaOS 4

Also nach erneutem Versuch muss ich sagen, dass der Verbindungsaufbau mit der X-Surf diesmal nicht wesentlich langsamer war als mit der ConneXion.

Insgesamt scheinen sich die beiden Karten wohl nix zu nehmen!

Kennt jmd. gute Genesiseinstellungen (MTU, Puffer etc.) für die jew. Karte?
 
Reth   Nutzer

07.11.2004, 21:55 Uhr

[ - Direktlink - ]
Thema: Meinungen gesucht: Connexion oder XSurf
Brett: Amiga, AmigaOS 4

Also hier ein kurzer Vergleich der beiden Karten:

Man merkt deutlich, dass die ConneXion die CPU weniger belastet und zwar beim Verbindungsaufbau in AmiTradeCenter. Bei der X-Surf wurde die Reaktionszeit der Workbench (Fensteraufbau, Mausbewegungen) deutlich ruckelig.

Im Download des gleiche Files nehmen sich die beiden Karten nix subjektiv gesehen. Die Spitzen waren bei T-DSL1000 so bei ca. 113kb/Sek. Obwohl ich bei der ConneXion den Eindruck hatte, dass sie häufiger auch langsame Zeiten und immer wieder kurze 0kb/Sek. hatte, so dass die X-Surf hier insgesamt etwas die Nase vorn hatte.

Von den 20MBit/s der X-Surf im Vollduplexmodus hat man hier nix gemerkt, vielleicht bei einer Übertragung zw. zwei Rechnern!?

Hat da jmd. zuverlässigere Werte? Bis jetzt scheint mir die Connexion besser als die X-Surf zu sein, aufgrund des schnelleren und unbelastenderen Verbindungsaufbaus!
 
Reth   Nutzer

07.11.2004, 21:17 Uhr

[ - Direktlink - ]
Thema: X-Surf Genesis meint kann xsurf.device Unit 0/1 nicht finden?
Brett: Amiga, AmigaOS 4

Das darf doch nicht wahr sein oder?

Jetzt hab ich die ConneXion ausgebaut und die X-Surf in deren Steckplatz gestöpselt. Nun gehts problemlos.

Ich brauch hinter dem DSL-Router nicht mal das xsurfadsl.device!

Was ist denn hier los?

Gehen keine 2 Netzwerkkarten gleich zeitig am Amiga?

Vielleicht muss ich die Reihenfolge der Aufrufe mal ändern: Erst X-Surf dann ConneXion? Man hat ja schon viel erlebt!
 
Reth   Nutzer

07.11.2004, 21:06 Uhr

[ - Direktlink - ]
Thema: X-Surf Genesis meint kann xsurf.device Unit 0/1 nicht finden?
Brett: Amiga, AmigaOS 4

Muss ich das x-surf.device etwa noch in die NSDPatch.cfg eintragen?
 
Reth   Nutzer

07.11.2004, 21:00 Uhr

[ - Direktlink - ]
Thema: X-Surf Genesis meint kann xsurf.device Unit 0/1 nicht finden?
Brett: Amiga, AmigaOS 4

Zitat:
Original von GolfSyncro:

Hi hast du von dem device name auch das 040 entfernt? es darf nacher nur noch x-surf.device heisen..
Nur so als tipp


Ja, hab ich getan. Hab auch die 020er und 000er Version des Device probiert immer dasselbe Ergebnis!

Mag Genesis oder sonst wer das nicht, wenn 2 Netzwerkkarten im Rechner sind?
Kann ich mir nicht vorstellen!
 
Reth   Nutzer

07.11.2004, 20:31 Uhr

[ - Direktlink - ]
Thema: X-Surf Genesis meint kann xsurf.device Unit 0/1 nicht finden?
Brett: Amiga, AmigaOS 4

Hallo nochmals,

nicht allein, dass mir heut meine 40GB IDE Platte abgeraucht zu sein scheint, nein auch die soeben eingebaute X-Surf tut nicht mit Genesis!

Mit ShowConfig wird die Karte schön aufgelistet, hab das x-surf.devicec (040er Version für meinen A4000/PPC/060) installiert und die Configdatei nach ENVARC:sana2/ kopiert.

Was ich nicht genommen hab ist die db-Datei und die Datei im bin-Ordner, da ich noch ne ConneXion eingebaut hab und die einwandfrei funktioniert!

Wenn ich nun mit dem Genesiswizard die Karte einrichten will sagt Genesis: Kann xsurf.device Unit 0/1 (welche ich gerad eingestellt hab) nicht finden.

Kennt jemand das Problem oder besser: Hat jmd. ne Lösung dafür? :D

Aus dem SnoopDos Log bin ich nicht schlau geworden.

Hilfe!!!

Ciao
 
Reth   Nutzer

07.11.2004, 17:50 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von whose:
Ich denke mal, der simpelste Weg ist, die Daten als RAW zu speichern,
PPaint hat (glaube ich) einen passenden Operator, der die Daten auch
gleich im Chunky-Format schreibt.

Ansonsten mal die Konverter-Tools im Aminet ansehen, da war glaube
ich auch was von wegen IFF2Chunky oder so drin.


Danke gute Idee!

Zitat:
Wenn alles nichts hilft, lade die Bilddaten mittels Datatype und
schreibe die selbst wieder im Chunky-Format als Sourcecode auf Platte.
Ist zwar aufwändig, aber wenns nu gar nicht anders geht...

Ersatzweise könnte man auch die Bilddaten per Datatype direkt in eine
Bitmap schreiben lassen. Im Moment habe ich aber noch nicht so die
Ahnung, ob das auch mit Offscreen-Bitmaps geht. Technisch sollte das
machbar sein. Bei mir klappts zumindest, wenn ich direkt in einen
Screen rendern lasse, dank Thomas Hilfe sogar mit den korrekten Farben
;) Wenn Du willst, kann ich Dir den Code mal zukommen lassen.


Klaro! Immer her damit, bin für jedes Beispiel dankbar!

Auch noch mal Dank an alle andern hier, die mit geholfen haben und mit Beispielen viel zum Fortschritt beigetragen haben, z.T. auch aus anderen Threads (danke Thomas ;) )

Ciao
 
Reth   Nutzer

07.11.2004, 17:31 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von whose:

Also, wie ich Dir schon per Mail schrieb, kannst Du den RastPort als eine Art "Seitenbeschreibung" verstehen. Darin findest Du Information über z.B. Größe der Bitmap, wo diese sich befindet, Layer, Stiftfarben etc. pp.

Die Bitmap als solche ist nicht im RastPort enthalten sondern nur ein Zeiger darauf. Genau das passiert in obigem Beispiel. Die Layer-Information im temrp-Rastport wird auf Null gesetzt und per AllocBitMap() ein Zeiger auf eine allozierte und initialisierte Bitmap in temprp eingetragen. Nicht mehr und nicht weniger.

...

Streng genommen könntest Du jetzt per WritePixel() und ähnlichen Funktionen, die einen RastPort als Parameter erwarten, in temprp hineinmalen. Das macht allerdings nicht viel Sinn bei einer einen Pixel hohen Bitmap ;)

Normalerweise benutzt man dieses Konstrukt für die temporäre Bitmap, mit der WritePixelArray8() bei der Chunky-zu-Planar-Konversion arbeitet. Die temporäre Bitmap braucht nämlich nur ein Pixel hoch zu sein und benötigt natürlich auch keinen Layer, es wird ja nichts wirklich dargestellt ;)


Das ist schon klar. Es ging rein um den Codeausschnitt. In dem hatte Thomas versehentlich den eigentlichen RastPort mit dem TempRastPort verwechselt. Nur darum gings, damit niemand ein falsches Bsp. übernimmt.

Jetzt muss ich nur noch sehen, wie ich meine Grafikdaten ins Chunkyformat bekomme bzw. anders in die BitMap.

Ciao

 
Reth   Nutzer

07.11.2004, 16:51 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von thomas:

WritePixelArray8 braucht zwei RastPorts. Einen, auf dem gearbeitet wird und einen für temporäre Daten.

InitRastPort(&rp);
rp.BitMap = bitmap;

etabliert den ersten RastPort und

temprp = rp;
rp.Layer = NULL;
rp.BitMap = AllocBitMap(width,1,depth,0,NULL);

ist wortwörtlich aus den Autodocs für Read/WritePixelArray8 abgeschrieben.

Daß es in diesem Fall, wo der erste Rastport nur rudimentär initialisiert wurde, nicht unbedingt notwendig ist, Layer zu löschen, tut der Funktion keinen Abbruch.


Hab ich das jetzt falsch verstanden, oder ist das nun hier ein Tippfehler:

Zitat:
temprp = rp;
rp.Layer = NULL;
rp.BitMap = AllocBitMap(width,1,depth,0,NULL);


Wird nun bei dem temprp der Layer auf NULL gesetzt und die einzeilige BitMap zugewiesen oder wie hier dem eigentlichen RastPort, ich denke eher beim temprp, oder?

Ciao

[ Dieser Beitrag wurde von Reth am 07.11.2004 editiert. ]
 
Reth   Nutzer

07.11.2004, 16:31 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von Holger:

(Mußte korrigieren) Dein Code ist sehr schwer lesbar, wieso initialisiert Du einen RastPort, kopierst ihn danach, um dann in der Kopie die Initialisierung wieder zu überschreiben? Bin selbst nach dem dritten Lesen nicht ganz sichern, ob ich jetzt weiß, was passiert.
tmp-rastport soll auf einen RastPort zum Zwischenspeichern einer Zeile zeigen, Du brauchst keine BitMap mit der kompletten Höhe anzulegen. Aber die ganze Operation dient zum Konvertieren chunky zu planaren Daten, Du legst aber eine friend-BitMap an, die vermutlich nicht planar ist. Und hast planare Daten, also komplett umgekehrt.

Wieso sind Deine Grafikdaten dann in UBYTE-Felder? Schreibt PPaint oder ArtPro bevorzugt UBYTE-Felder weg?
Wieso liest Du nicht einfach Bilder ein?


Den RastPort initialisiere ich, weil WritePixelArray8() einen temporären RastPort benötigt. Den Code hab ich aus nem Beispiel entnommen. Meiner Meinung nach ist mein einziges Problem derzeit, dass ich planare Daten habe. Wenn ich das irgendwie ändern kann in Chunky, dann sind meine BitMaps endlich richtig initialisiert!
Ich dachte die Prozedur dient dazu BitMaps mit Grafikdaten zu versorgen ohne darauf Rücksicht nehmen zu müssen, welches Format die BitMap hat !?
Die FriendBitMap, die ich bei Allokation der Tempbitmap übergebe ist die BitMap, in der die letztendlichen Grafikdaten landen sollen (ich dachte, dass das nicht schaden könnte). Die FriendBitMap, die bei der Allokation der eigentlichen BitMap mitgegeben wird ist die BitMap des Fensters, in welches geblittet werden soll.

Kannst Du mir denn sagen, wie ich vorgehen soll, damit alles richtig funktioniert?
Als ich wie am Anfang dieses Threads die BitMaps als planar behandelt habe und sie selbst mit Daten pro Bitplane gefüllt habe, hatte ich Probleme mit der Freigabe der BitMaps (drum dieser Thread).

Nun ja, ArtPro schreibt die Daten in UBYTE-Felder und für das Einlesen von Bildern in BitMaps hab ich kein Codebeispiel gefunden und die Sache mit planaren BitMaps und UBYTE-Feldern schien prima zu funktionieren!
 
Reth   Nutzer

07.11.2004, 14:55 Uhr

[ - Direktlink - ]
Thema: Meinungen gesucht: Connexion oder XSurf
Brett: Amiga, AmigaOS 4

Danke für den Link. Konnte leider weder auf der Herstellerseite noch in der Amigahardware DAtenbank Angaben über die Speicherbusbreite finden. Werd nochmal Google bemühen. Beim Überfliegen des Textes zu dem Link hab ich auch noch nichts gesehen!
 
Reth   Nutzer

07.11.2004, 14:53 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Zitat:
Original von whose:

WritePixelArray8() ist denke ich nicht die richtige Funktion, wenn Deine Ausgangsdaten in einem Planar-Format vorliegen und nicht Chunky. Du weißt ja, ich hab bisher nur mit WPA8() gearbeitet, daher weiß ich nicht genau, welche Funktion da besser geeignet wäre, aber ich tippe mal auf WritePixel() und Ähnliche. Vielleicht kann Dir einer der anderen hier mitschreibenden mehr dazu sagen. Ich hab mich gerade an der SDl festgebissen, da bleibt wenig Zeit für anderes ;)

Grüße


Danke. Die Idee ist mir gestern nacht auch noch gekommen. Habe meine Grafikdaten von ArtPro als Image-Daten im C-Source speichern lassen. Dadurch sind sie Planar. Da WritePixelArray8() aber die Daten nicht planar interpretiert, probier ich sie mal anders zu speichern (es gibt noch die Interleaved-Funktion).

Oder Weiss jmd. wie ich die Daten richtig als UBYTE-Array bekomme, so dass ich sie in WritePixelArray8() verwenden kann?
Die Grafiken erstelle ich immer mit PPAint und schneide sie mit ArtPro auf die richtige Größe zu.

Bin für jeden Vorschlag dankbar!
 
Reth   Nutzer

06.11.2004, 21:50 Uhr

[ - Direktlink - ]
Thema: Privilegverletzung bei FreeBitMap()
Brett: Programmierung

Soweit so gut!

Das Freigabeproblem besteht nicht mehr, dafür sehen meine Grafiken nicht mehr so aus wie sie sollen!

Woran kann das denn nun liegen?
Ich erzeuge die BitMaps nun folgendermassen:

void initBitMap(struct BitMap *friendBitMap)
{
struct RastPort rp, rpTemp;
struct BitMap *tempBitMap;

bitMap = AllocBitMap(width, height, SCREENDEPTH, BMF_DISPLAYABLE, friendBitMap);
tempBitMap = AllocBitMap(width, height, SCREENDEPTH, 0, bitMap);

InitRastPort (&rp);
rp.BitMap = bitMap;
rpTemp = rp;
rpTemp.Layer = NULL;
rpTemp.BitMap = tempBitMap;
WritePixelArray8 (&rp, 0, 0,width-1,height-1, data, &rpTemp);

FreeBitMap(tempBitMap);
}

Denke, dass da was noch nicht stimmt oder?

Geblittet wird dann wie folgt:

BltMaskBitMapRastPort(bitMap, 0, 0, rastPort, xPos, yPos, width, height, 0xC0, mask);

Die Mask ist dabei nur die Adresse des UBYTE-Feldes mit den Maskendaten. Der RastPort ist der des verwendeten Fensters, von dem auch die FriendBitMap in obiger Funktion stammt.

Data und Mask sind beide auf den Typ PLANEPTR gecastet und wie so angelegt:

UBYTE data[] =
{
daten,daten,daten... // immer mit der notwendigen Anzahl Bytes pro Zeile
}

UBYTE mask[] =
{
daten,daten,daten... // immer mit der notwendigen Anzahl Bytes pro Zeile aber nur entsprechend einer Bitplane
}

Irgend jemand ne Idee wieso die Grafiken jetzt Müll sind?
 
 
Erste << 50 51 52 53 54 -55- 56 57 58 59 60 Letzte Ergebnisse der Suche: 1858 Treffer (30 pro Seite)

Suchbegriffe
Schlüsselwörter      Benutzername
Suchoptionen
Nur in diesen Foren suchen
   nur ganze Wörter
Nur Titel anzeigen
alle Treffer anzeigen

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.