ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
whose
Nutzer
11.12.2005, 20:29 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung Zitat: Was er erwartet hat? Das ReadPixelLine8() die korrekten Palette-Werte in sein Array schreibt. Das kann allerdings nicht funktionieren, wenn er "irgendwas" als Quell-RastPort angibt (rp = *win->RPort). Mit der CV64 hast Du insofern Recht, wenn denn ROMBLER drauf sitzt. Ansonsten wird das von der GraKa-Software gehandhabt (Stichwort WriteChunkyPixels() und deren Fähigkeit, Hardware für die Konversion zu benutzen, sofern vorhanden. Ansonsten Software). Inzwischen sind CGFX/P96 so weit, daß die Palette-Emulation in allen Modi sehr gut funktioniert. Sonst würde kein Programm, welches auf Paletten-Indizes basiert, auf einem HighColor/TrueColor-Bildschirm vernünftig laufen. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
11.12.2005, 20:21 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung Zitat: Das habe ich ja schon zugegeben, daß man das auch "sauberer" mit logischen Verknüpfungen machen kann. Von "müssen" war meines Wissens nie die Rede. Zitat:Zitat:Das will ich doch mal sehr bezweifeln. Auf dem 68060 beanspruchst beide integer-Einheiten mit von einander abhängigen Operationen, auf dem 68000 hängt die Ausführungszeit von der shift-Weite ab, und ab irgendwo dazwischen ein Prozessortyp existiert, bei dem zwei shift-Operationen tatsächlich schneller als eine AND-Operation sind, und der tatsächlich in einem realen AMiga verbaut wurde, vielleicht, ich glaube es aber eher nicht. Du denkst aber hoffentlich noch an die NOT-Operation, die auf das AND folgt? Sieh Dir das Ganze mal als Assembler-Quelltext an, beide Versionen. Dann urteile, was mehr und was weniger Zyklen benötigt. Ich glaube kaum, daß sich die Gurus das aus Jux und Dollerei ausgedacht haben, oder weil die etwas gegen "saubere" Programmierung hatten. Das hatte (wie eigentlich immer) seinen ganz speziellen Grund. Schaden kanns jedenfalls nicht, wenn man ihm erklärt, was da genau passiert und warum, und ich denke, er wird sich die von Dir vorgeschlagene Variante auch schon mal in Binärrepräsentation angesehen haben. Wenn nicht, wird er es spätestens jetzt tun, denk ich Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
11.12.2005, 20:14 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung Zitat: Ok, also als erstes solltest Du etwas bei den MemType-Flags ändern. Korrekt lautet das MEMF_CHIP|MEMF_CLEAR also ODER-verknüpfen. Des weiteren hast Du einen winzig kleinen Fehler in temprp = *win->RPort; Der * gehört da nicht hin, denn damit erreichst Du genau das, was bei temprp ohne &-Operator passiert. Es wird der Inhalt der RastPort-Struktur übergeben, nicht der Zeiger auf den Beginn dieser Struktur. Deswegen erhältst Du auch die graue Linie. Das, was da als scheinbarer RastPort übergeben wird, zeigt irgendwohin im Speicher, da die Linie grau wird, offensichtlich ein Bereich, welcher mit 0 gefüllt ist. Bemerkenswerterweise wird ja trotzdem eine Linie gezeichnet, obwohl rp "irgendwohin" zeigt, nur nicht auf den RastPort des gemeinten Fesnters. Frag mich aber jetzt nicht, warum da sichtbar gezeichnet wird. Vermutlich ein (ungewollter) Seiteneffekt der Struktur. Nimm den * bei *win->RPort weg, dann sollte es funktionieren. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
11.12.2005, 19:45 Uhr [ - Direktlink - ] |
Thema: Restlaufzeitanzeige
Brett: Andere Systeme Das kann ich so nicht bestätigen. Ich habe zusätzlich zur %-Anzeige eine Restlaufzeit-Prognose. Notebook Medion, XP Home Edition, Version 2002. Da scheint es wohl mehrere Versionen von XP Home Edition zu geben... Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
11.12.2005, 15:10 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung Zitat: Ok, aber der PEEKL oben ist schon sowas in der Art, was unter C mit Strukturen passiert. Die Zeile bedeutet, daß Du den Zeiger auf die RastPort-Struktur aus der Window-Struktur in die Zeigervariable rp übertragen hast. Ähnlich sieht das unter C aus, da hieße es rp = mywin->rport rp ist hier eine Variable der Art "struct RastPort *", also ein Zeiger auf eine RastPort-Struktur. In Deinem Beispiel wars etwas anders, da hattest Du stehen struct RastPort temprp; Das veranlaßt den Compiler, Speicherplatz für eine komplette RastPort-Struktur bereitzustellen, also nicht nur für einen Zeiger. Wenn Du WritePixelLine8() als temprp die komplette Struktur übergibst (bildlich gesprochen), kommt da nichts brauchbares bei heraus. Der Compiler übergibt dann als Parameter etwas, womit WritePixelLine8() nichts besonders sinnvolles anfangen kann. Veranlaßt Du den Compiler aber mittels &-Operator, als Parameter einen Zeiger auf den Beginn der von Dir angelegten temprp-Struktur zu übergeben, dann paßts. Strukturen sind nichts anderes als ein kleiner Teil Speicher, in dem Werte unterschiedlicher Größen untergebracht werden können, jeder Wert an einer durch die Struktur vorbestimmten Stelle, gezählt vom Beginn der Struktur. Ist so ähnlich wie ein eindimensionales Array, nur mit dem Unterschied, daß die Einträge unterschiedliche Größen haben können. Zitat: *hüstel* nein, Du bekommst die maximal möglichen 256 Farben der Palette der Workbench, sofern vorhanden. Und das sogar in Modi, die gar keine Palette im herkömmlichen Sinn bieten. Bietet der Bildschirm aber weniger als 256 Farben, bekommst Du auch dementsprechend nur kleinere Palettenindizes, z.B. bis maximal 128, sofern die Farbtiefe des Bildschirms so eingestellt ist. Du solltest immer daran denken, daß die Bittiefe durchaus auch mal kleiner als 8 sein kann. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
11.12.2005, 14:52 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung @Holger: Öhm, ist ja richtig, daß es noch schneller ist, gar keine dieser Operationen durchzuführen, sofern das machbar ist. Hier gings aber um Read-/WritePixelLine8() sowie WritePixelArray8(), und diese Funktionen benötigen nun einmal ihre Daten in einer durch 16 teilbaren Anzahl. Manchmal läßt es sich eben nicht vermeiden, daß man die Daten in einer anderen Anzahl vorliegen hat, dann sind diese Operationen auf jeden Fall notwendig. Wie willst Du z.B. eine Linie mittels WritePixelLine8() ins Bild bringen, die 325 Pixel lang ist, ohne den Rechner zum Absturz zu bringen, wenn Du diese Datenmenge nicht auf 336 Bytes erweiterst? Das man mit (((width+15)>>4)<<4) eine Eigenschaft von Integerzahlen in ihrer binären Repräsentation ausnutzt, ist dabei doch nur natürlich. Und auf 68K-Maschinen ist das schneller als die entsprechenden logischen Operationen. Streng genommen eigentlich auf nahezu allen älteren CPUs. Die logischen Operationen, die Du vorgeschlagen hast, sind aus Compilersicht natürlich "sauberer", das ist wahr. Aber hey, hier gehts um Amiga, da muß man sich noch nicht so dermaßen Gedanken darüber machen, ob ein Shift auf der nächsten Maschine noch etwas taugt oder nicht Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 11.12.2005 um 15:16 Uhr editiert. ] |
|||||
whose
Nutzer
11.12.2005, 00:11 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung Zitat: Nun weißt Du, wozu das gut ist Wie gesagt, das kann man auch bei anderen Gelegenheiten gut gebrauchen. Zitat: Du hast Dir die Parameter von Write-/ReadPixelLine8() nicht gründlich angeschaut, oder? Der letzte Parameter dieser Funktionen ist ein "struct RastPort *", nämlich ein Zeiger auf eben diesen temprp. Den mußt Du in Deinem Fall mittels &-Operator übergeben, also z.B. WritePixelLine8(......., &temprp); Warum mit &? Wenn die RastPort-Struktur in Deinem Prog so angelegt wird, wie oben von Dir angegeben, handelt es sich um eine vom Compiler auf dem Heap angelegte Struktur und nicht um einen Zeiger darauf. Da ein Zeiger auf die Struktur von Write-/ReadPixelLine8() gewünscht wird, mußt Du dann logischerweise die Adresse auf diese Struktur übergeben, nicht den "Wert" der Struktur. Zitat: Nein, es stört nicht (CGFX/P96 "emulieren" auch auf Screens >8Bit eine 8Bit-Palette). Du bekommst in jedem Fall nur Palette-Indizes zurück, also 8Bit-Einträge. Es kann Dir natürlich passieren, wenn Du die ...8()-Funktionen und CGFX/P96-Funktionen (also die ohne 8 ) mischst, daß Du dann eine 0 zurückbekommst. Also Obacht und darauf testen. Ist zwar nicht offiziell so dokumentiert, aber ich meine, bei ReadPixelLine8() käme als "count" 0 bzw. eine Zahl kleiner als Deine Linienbreite, wenn sich kein Palette-Index zuweisen läßt Beim Setzen einer Linie passiert das Gleiche, es wird von WritePixelLine8() nur eine Linie mit den Farben der entsprechenden Paletten-Indizes aus Deinem Array gezeichnet. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 11.12.2005 um 00:21 Uhr editiert. ] |
|||||
whose
Nutzer
10.12.2005, 19:58 Uhr [ - Direktlink - ] |
Thema: Write/ReadPixelLine8
Brett: Programmierung @MaikG: Also: Array ist der Speicher, in den die Farbwerte der Pixel einer von Dir spezifizierten Linie im sichtbaren Bild ausgelesen werden (ReadPixelLine8) oder aus dem die Farbwerte für eine ins sichtbare Bild zu bringende Linie genommen werden (WritePixelLine8). Das bedeutet, daß Array so groß sein muß, daß alle Farbwerte hineinpassen. Dazu paßt auch die "seltsame" Berechnung (((width+15)>>4)<<4). Diese Berechnung sorgt dafür, daß die Breite der Linie eine durch 16 teilbare Zahl ergibt . Um auch hier gleich die Erklärung zu liefern: Schreib Dir die tatsächliche Breite als binäre Zahl auf ein Stück Papier. Dann addierst Du 15 hinzu (wieder binär aufschreiben). Danach verschiebst Du alle Bits des Ergebnisses um 4 Stellen nach rechts und füllst links mit Nullen auf. Mach Dir keine Gedanken, wenn 4 Bits rechts "herausfallen" sollten, das ist der Gag dabei. Nun schiebst Du diese Bits (also OHNE evtl. verloren gegangene Bits) wieder 4 Stellen nach links und füllst rechts mit Nullen auf. Danach teile die entstandene Zahl durch 16. Wird immer glatt aufgehen Ist ein kleiner "Trick", um ganze Zahlen zu erhalten, die durch eine gewünschte 2er Potenz restlos teilbar sind. Bei einem gewünschten Mehrfachen von 8 z.B. würdest Du (((zahl+7)>>3)<<3) schreiben. Read-/WritePixelLine8 und auch WritePixelArray8 benötigen die Daten in einer durch 16 teilbaren Anzahl pro Linie, weil diese Funktionen u.A. in ein anderes Ziel-Pixelformat konvertieren können. Diese Konvertierung wird in "Chunks" von 16 Bytes pro Vorgang durchgeführt, also muß eine Linie eine durch 16 teilbare Breite haben, damit die Konvertierung nicht "aus dem Tritt gerät". Dafür wird u.A. auch temprp benötigt. Die 8, die hinter den Funktionsnamen steht, deutet darauf hin, daß diese Funktionen mit einer Farbtiefe von max. 8Bit (!) arbeiten. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 10.12.2005 um 20:10 Uhr editiert. ] |
|||||
whose
Nutzer
27.11.2005, 02:47 Uhr [ - Direktlink - ] |
Thema: EXTREME-AMIGA CLASSIX GAMES COLLECTION
Brett: Amiga, AmigaOS 4 Zitat: Auch Du lernst ungern dazu, kann das sein? Als ob es nicht genügt hätte, eine Aktion öffentlicher Demontage zu starten und die wieder zurückzuziehen, jetzt geht das hier wieder los, nur diesmal subtiler. Du hättest Dir diesen letzten Absatz sparen können und Dein Manifest zur Diskussion stellen, das hätte vollauf genügt, da bin ich mir sicher. Aber nein, zusätzlich zu Deiner eigenen (und Dir weiterhin unbenommenen) persönlichen Meinung kommt mal wieder was mit Scheinlogik und Absolutheitsanspruch in Verbindung mit Demontagedrohungen. Laß das doch endlich mal und erweise Dich auch hier als der faire und sachliche Diskussionspartner, der Du oft genug bist! Wenn Maja sich als dieses Postens auch in den Augen anderer als unwürdig erweisen sollte, wird sich das schon zeigen. Du mußt das nicht durch Scheinlogik forcieren (Stichwort: demzufolge). Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 27.11.2005 um 02:48 Uhr editiert. ] |
|||||
whose
Nutzer
25.11.2005, 00:35 Uhr [ - Direktlink - ] |
Thema: EXTREME-AMIGA CLASSIX GAMES COLLECTION
Brett: Amiga, AmigaOS 4 Zitat: Stimmt, es ist einfach nicht zu fassen. Liest Du Dir Deine Postings eigentlich nochmal durch und stellst Dir dabei vor, wie die auf die betreffenden Leute wirken? Anscheinend nicht. "Etwas mager, diese Aussage." Ist für einen Moderator ein durchaus angemessener Satz. [ironie]Zeugt von Neutralität und Distanz, wirklich.[/ironie] Liebe Maja, genau diese beiden Eigenschaften hast Du vor knapp nem halben Jahr abgelegt. Du gibst Deine Meinungen zu Themen zum Besten, wo Du nach eigener Aussage einmal keine Detailkenntnisse hast, ein anderes mal wieder doch. Du hast mehr als einmal versucht (und teilweise auch geschafft), Diskussionen ins lächerliche oder gar persönliche Eck abgleiten zu lassen. Und da wunderst Du Dich, daß inzwischen sogar Leute, die Dich einst gegen die unten erwähnte Prangeraktion in Schutz nahmen, an Deiner Glaubwürdigkeit zweifeln? Oder daß man Dich Deine eigene Medizin probieren läßt? Zitat: Das ist genauso ein Unding. Die Prangeraktion ist passiert, Supimajo hat sich sehr wort- und gestenreich dafür entschuldigt und Euch voll rehabilitiert. Was gibt es da jetzt noch drüber zu mäkeln? Willst Du ihm das wie ein trotziges Kind jahrelang nachtragen? Sei mir nicht bös, aber mit einem solchen Habitus sollte man keine Stelle in einer Gemeinschaft einnehmen, die auf Mäßigung und Ausgleich gerichtet ist. Könnte man sich nun endlich mal darauf einigen, daß AndreasM seine Aussage keineswegs leichtfertig in den Raum gestellt hat und das auch Moderatoren nicht unfehlbar sind? Das wäre mal ein echter Fortschritt hier... Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
22.11.2005, 02:56 Uhr [ - Direktlink - ] |
Thema: Wer kennt dieses Programm noch? (Tool wie Diskmaster oder DOpus)
Brett: Amiga, AmigaOS 4 @Maja: Die Frage war zu allererst: "Wie hast Du das denn gemacht...?", nicht, was die Quelle der Bestandteile ist. Das kam erst später und auch nur verklausuliert. Klang schon ein wenig so, als wüßtest Du nicht, wie das Bild zustande gekommen ist. Übrigens war Deine Frage auch nicht besonders konstruktiv, denn hätte er das bewußte Programm zur Erstellung des Phantombilds benutzt, müßte er wohl nicht danach fragen, oder? Evtl. solltest Du Dich an Deinen eigenen Rat halten und nicht nach dem ersten Satz aufhören zu denken. Wenn Supimajo ein rotes Tuch für Dich ist, schön, aber macht das unter Euch aus und zieh da nicht noch andere Leute mit rein, die mit der Sache rein gar nichts zu tun haben Sollte es Dich zusätzlich geärgert haben, daß Steve56 sich ein wenig abfällig über den teilweise rüden Umgangston hier geäußert hat, frag Dich doch einfach selbst einmal, ob das nicht evtl. zutreffen könnte. Das Durchlesen Deiner eigenen Postings an gewisse Leute könnte Dir da sicher mit eine Hilfe sein. Ausgesuchte Wortwahl bedeutet nicht automatisch Freundlichkeit dem Anderen gegenüber. Versteh das bitte als Anregung, nicht als Angriff persönlicher Natur. Um mal zum Thema zurückzukommen: Mir sagt das Bild zwar auch etwas, kann mich den hier geäußerten Mutmaßungen aber nur anschließen. Definitiv kann ich auch nicht sagen, welches der genannten Programme das Gesuchte sein könnte. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 22.11.2005 um 02:57 Uhr editiert. ] |
|||||
whose
Nutzer
08.11.2005, 15:13 Uhr [ - Direktlink - ] |
Thema: Guru Meditation Fehler
Brett: Amiga, AmigaOS 4 @Margit: Ich weiß nicht mehr genau, ob das hier oder auf AmigaWorld war, aber da hat jemand einen Link zu ner Seite gepostet, wo eine junge Dame davon berichtete, genau dieses Teil verwendet zu haben, und zwar so, wie man Dich nicht nach fragen soll Jedem Tierchen sein Plaisierchen Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
08.11.2005, 00:59 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @Holger: Also sind wir uns im Grunde einig, daß Messages abgeholt werden sollten, wenn sie anliegen, das ist schön Die empfohlene Wait()-Schleife ist auch meiner Meinung nach der beste und sauberste Weg, damit umzugehen. Also sollte man das auch so machen, wenn keine wichtigen Gründe dagegen sprechen. Die Beispiele für AmigaOS-API- oder gar C-Anfänger bergen jedenfalls keinen konkreten Grund, auf WaitPort() auszuweichen und/oder das Abholen der Messages zu vernachlässigen. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
05.11.2005, 14:43 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @NoImag: Ich verstehe Deine Frage ehrlich gesagt nicht so ganz. Du kannst das sicherlich so machen. WaitPort() sofort wieder aufrufen. Ich frag mich nur gerade, worin da der Sinn liegen soll... wenn man eine Message bekommt, hat die sicherlich einen Sinn und den sollte man erst einmal ermitteln, bevor man auf die nächste Message wartet. Also die Message abholen. Signale, die nicht mit einer Message zu tun haben, sind ein anderes Thema. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
04.11.2005, 20:37 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @Holger: Die Stichhaltigkeit Deiner Argumentation sehe ich ein. Andererseits müßte dann ein Resource Tracker dann auch meckern, wenn eine evtl. anliegende IDCMP_CLOSEWINDOW-Message beantwortet wird. Genau das tut keins der Tools. Die meckern grundsätzlich nur dann, wenn eine IntuiMessage (wie eben IDCMP_CLOSEWINDOW aus den Einfach-Beispielen) nicht wenigstens beantwortet wird. Das ist jedenfalls die Erfahrung, die ich oft genug gemacht habe, vor kurzem noch bei AmiDevCpp mit dem Intuition-Grundgerüst. Nach Einbau der entsprechenden Schleife mit GetMsg()/ReplyMsg sind alle Beanstandungen des Resource Trackers sowohl von StormC als auch Maxon C++ erledigt. Und Avail zeigt korrekte Werte für den freien Speicher an. Irgendetwas ist da also nicht ganz in Ordnung, und ich gehe stark davon aus, daß sich die Doku da über eine Kleinigkeit des Message-Handlings von Intuition ausschweigt. Selbst wenn das nur ein Seiteneffekt ist: Meiner Meinung nach sollten Messages soweit wie möglich auch beantwortet werden, das wäre sauber. So zeigt man den Beginnern nur von Anfang an, daß man faul sein darf (was man gerade bei AmigaOS eben nicht sein sollte). Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
04.11.2005, 10:47 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @gni: Ich weiß, daß sowas in der Doku steht. Interessanterweise gibts unter StormC z.B. häufiger Meldungen, daß Speicher nicht freigegeben wurde, wenn die IntuiMessages nicht mittels ReplyMsg() beantwortet wurden (wenigstens die erste). Avail spuckt nach dem Programmlauf ein ähnliches Ergebnis aus, es wird Speicher nicht freigegeben. Wird die erste IntuiMessage replied, gibts da keine Sorgen. Scheint dann wohl ein Fehler zu sein. Entweder in Intuition oder in den Docs (wobei ich letzteres eher annehme). Grüße Edit: RKM, 3rd Edition, Seite 250: "After the application opens an IDCMP, it must monitor the port for messages. At a minimum, this involves removing all messages from the port and replying to them. An event loop which processes messages arriving at the IDCMP is discussed below." Für mich sieht das so aus, als hätten wir alle Recht. IntuiMessages werden nach CloseWindow() oder Programmende freigegeben, aber auf wenigstens eine Message sollte man ein ReplyMsg() folgen lassen. Das würde zumindest erklären, weshalb alle Tools, die eingeschränktes Resource Tracking ermöglichen, bei den "wir warten nur auf ein Signal am Port und machen dann die Schotten dicht"-Beispielen mosern. Übrigens habe ich in den RKMs kein Intuition-bezogenes Beispiel gefunden, daß völlig ohne GetMsg()/ReplyMsg() arbeitet. Also sollte man meiner Meinung nach auch die zwei Zeilen in diverse Beispiele einbauen. Ist nicht viel mehr Aufwand und auch freundlicher, was den Stil betrifft. -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ Dieser Beitrag wurde von whose am 04.11.2005 um 14:41 Uhr editiert. ] |
|||||
whose
Nutzer
03.11.2005, 21:23 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @Holger: Laß uns darüber nicht streiten. Ich werde am Wochenende noch einmal nach dem Beispiel suchen, welches nur einen Port/ein Fenster nutzt und das korrekte Abarbeiten der IntuiMessages zum Programmende hin demonstriert. Fakt ist jedenfalls, daß man diese IntuiMessages nicht unter den Tisch fallen lassen darf, das ist schlicht nicht korrekt. Bei "normalen" Messages ist diese Vorgehensweise erlaubt und bringt einem auch keinen Speicherverlust ein, da hast Du vollkommen recht. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
03.11.2005, 09:52 Uhr [ - Direktlink - ] |
Thema: Images auf einem Fenster
Brett: Programmierung @Holger: Naja, ganz korrekt ist es trotzdem nicht, die IntuiMessages einfach untern Tisch fallen zu lassen, da es sich bei z.B. IDCMP_CLOSEWINDOW um eine IntuiMessage-Struktur handelt. Die eigentlich darin verborgene Message-Struktur wird zwar freigegeben, die Intuition-spezifischen Zusatzinformationen aber erst nach einem ReplyMsg(). Bemerkbar ist das einmal in einer Entwicklungsumgebung mit Resource-Tracking wie StormC zum Beispiel, ein anderes Mal durch eine simple "Avail FLUSH - Ausführung - Avail FLUSH"-Folge. Da gehen immer ein paar Bytes flöten, wenn die Message nicht replied wird. Zum Thema "es können noch Nachrichten anstehen beim Verlassen der Schleife": Das ist im Grunde korrekt, bei diesem Beispiel kann man sich aber auf Seiteneffekte verlassen. IDCMP-CLOSEWINDOW ist hier die einzige IntuiMessage, die ankommen kann. Alle anderen "denkbaren" Messages (welche sollten das sein?) kann man als "normal" annehmen, womit sich ein ReplyMsg() erübrigt. Diese werden ja automagisch freigegeben. Normalerweise müßte man also bei jedem Programm, welches auf Intuition-Messages wartet, vor dem Beenden erst einmal die Message-Queue leeren. Hier kann man darauf aber getrost verzichten, ein ReplyMsg() bei IDCMP_CLOSEWINDOW genügt. Irgendwo auf einer der alten CATS-Disks ist auch ein entsprechendes Beispiel zu finden, wo genau diese Vorgehensweise angeraten wird (Message-Queue leeren). Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
02.11.2005, 18:39 Uhr [ - Direktlink - ] |
Thema: Amiga-(Re)Newbie will System neu installieren...
Brett: Amiga, AmigaOS 4 @Flinx: Ich denke mal, diese Fragen kann meszi am Besten beantworten und man sollte sie ihm stellen. Besonders viel Informationen haben wir ja derzeit noch nicht über sein System Andererseits scheint er sich auch sehr dafür zu interessieren, wie das auf herkömmlichem Weg funktioniert. Hoffen wir mal, daß er das auch mit dem OS3.1-Diskettensatz geregelt kriegt. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
02.11.2005, 13:55 Uhr [ - Direktlink - ] |
Thema: Amiga-(Re)Newbie will System neu installieren...
Brett: Amiga, AmigaOS 4 Mal ne ganz andere Frage: Wäre es nicht sinnvoller, jemand von den hier Mitlesenden macht dem Fragesteller eine Notfalldiskette für OS3.9 fertig und schickt sie ihm zu oder packt das ganze in ein ADF, verkleinert das auf unter 720K und packt noch lha und transadf dazu, wenns paßt? Wäre meines Erachtens die unkomplizierteste Alternative, ein originales OS3.9 scheint ja vorhanden zu sein, also wäre das auch nicht sonderlich illegal. Dann kann der gute Mann direkt installieren, ohne sich was dabei zu brechen Also, irgend jemand anwesend, der nen verhältnismäßig nackten 1200er mit CD-ROM und OS3.9 hat? Grüße P.S.: Schade, daß H&P damals nicht daran gedacht haben, wenigstens eine Minimal-Notfalldiskette mitzuliefern, die auch reibungslosen CD-ROM-Betrieb am IDE unter Kickstart 3.1 ermöglicht. Würde manche Neuinstallation sicher etwas weniger kompliziert gestalten... -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
31.10.2005, 10:26 Uhr [ - Direktlink - ] |
Thema: ESC-Taste beim A4000
Brett: Amiga, AmigaOS 4 @julius: Auch die älteren KVMs kranken gern am Initialisierungsprozess. Versuche einmal, die ESC-Taste ein wenig später als gewohnt zu drücken, meistens hilft das schon. Bei mir funktioniert ESC auch erst, wenn ich die Taste etwas später gedrückt halte (wenn ich sehe, daß die CVPPC initialisiert wurde), vorher "frißt" der Umschalter den Tastendruck einfach. Ich habe zwar einen elektronischen, aber das sollte keinen großen Unterschied machen. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
30.10.2005, 10:06 Uhr [ - Direktlink - ] |
Thema: Delfina Clockport -> Hänger!
Brett: Amiga, AmigaOS 4 @GREX: Das ist schnell erklärt. Das Einfrieren tritt auch dann auf, wenn man die PPC-Decoding-Engine benutzt, nicht nur beim delfinampeg.device. Bei beiden Varianten treten die gleichen Symptome auf. Zusätzlich gabs das selbe Problem auch auf dem A1, was an einem Fehler im Soundkartentreiber lag. Da liegt es verdammt nahe, daß die Delfina-Software das Problem verursacht. Da dieses Problem bei mir vor allem beim Titelwechsel auftritt, vermute ich eine falsche Interrupt-Behandlung, ähnlich wie beim Soundkartentreiber des A1. Da wäre es schon schön, wenn man sich die Delfina-Software mal näher anschauen könnte. Die Einfrierer kommen übrigens nicht nur beim MP3-Abspielen vor, das passiert sogar bei normaler Soundausgabe via AHI, besonders gern beim Highlight-Feature von AmIRC. Da ist es ein simpler Wave-Sound, der abgespielt wird. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
29.10.2005, 10:59 Uhr [ - Direktlink - ] |
Thema: Delfina Clockport -> Hänger!
Brett: Amiga, AmigaOS 4 @Cego: Ich fürchte, da wird auch nicht viel kommen, weil das Problem seit dem Erscheinen der Delfina 1996 bekannt ist und immer noch nicht behoben ist. Ich kenne Dein Problem nämlich in ähnlicher Form auch (sporadisches und zfälligs Einfrieren des gesamten Systems beim Abspielen über AHI), bekannt geworden ist das unter dem Namen "AHI killer bug". Behoben sein sollte das seit etlichen Versionen der delfina.library, aber ich habe das mit jeder Version, selbst der neuesten, die noch mit der Delfina lite funktioniert. Bemerkenswert finde ich dabei, daß das Einfrieren auf meinem System immer dann vorkommt, wenn beim MP3 Abspielen die Datei gewechselt wird. Evtl. erreichst Du ja etwas, wenn Du (wie ich auch) anregst, die Quellen der delfina.library endlich wie versprochen freizugeben. Dann hätte ein findiger Kopf die Chance, sich das anzuschauen und evtl. die Ursache für die Lockups zu finden. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
20.10.2005, 23:24 Uhr [ - Direktlink - ] |
Thema: AmiDevCpp
Brett: Programmierung @Kaesebroetchen: Ok, ich kümmer mich morgen nachmittag mal drum und teste ein wenig Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
18.10.2005, 00:56 Uhr [ - Direktlink - ] |
Thema: Mein erstes C Programm will nicht
Brett: Programmierung @MaikG: evtl. noch gegen amiga.lib (oder wie die nu grad beim VBCC heißt) linken? Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
10.10.2005, 14:44 Uhr [ - Direktlink - ] |
Thema: AmiDevCpp
Brett: Programmierung Zitat: kprintf() befindet sich meines Wissens nach in der debug.lib, also gesondert von der amiga.lib, welche Du meintest. Muß ich mal nachschauen, wo die in AmiDevCpp abgeblieben ist. Sobald ich wieder zu Hause bin, kümmere ich mich darum. @Kaesebroetchen: Wie TerA zeigte, paßt also die ganze Geschichte doch noch nicht. crt0.o gehört zum GCC. Ich vermute mal, daß das der CygWIN-Part des ganzen Pakets ist, oder? Klingt jedenfalls wahrscheinlich, nachdem es bei mir problemlos läuft, ich hatte es ja schon einmal installiert. Was ich allerdings nciht begreife ist, daß es einwandfrei funzt, obwohl sich nun alles auf einer ganz anderen Partition befindet Also noch Nacharbeit an den Pfaden... Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
09.10.2005, 23:50 Uhr [ - Direktlink - ] |
Thema: AmiDevCpp
Brett: Programmierung Zitat: Hier gabs keine Probleme. Vorher alte Installation auf C: beseitigt und auf D: installiert, Anwendungsdaten habe ich aber drin gelassen, um zu prüfen, ob der Installer korrekt arbeitet. Tut er, die Daten werden überschrieben. Compilieren geht problemlos, sowohl im C- als auch C++-Modus. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
09.10.2005, 22:23 Uhr [ - Direktlink - ] |
Thema: AmiDevCpp
Brett: Programmierung Zitat: Hab sie nur kurz und unvollständig antesten können (wg. Mangel an geeigneten C++-Quellen vor allem ). C-Quellen werden aber anstandslos kompiliert (sogar mit den nervigen Makros ) Bisher habe ich aber keine eklatanten Mängel bemerkt. Ich werd morgen auch noch mal den Verzeichnisbaum kontrollieren, ob jetzt alles sein Richtigkeit hat, im groben Überblick sah es aber gut aus. Gute Arbeit! Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
04.10.2005, 11:07 Uhr [ - Direktlink - ] |
Thema: Tester gesucht !
Brett: Programmierung Zitat: Ich weiß nicht, ob er mich noch lieb hat, nachdem ich ihn wegen seiner Sprüche zu OS4 mal auf die Füße getreten bin Zitat:Zitat: Ok, dann beheb mal die Fehler noch und wenn Du noch Pakete sehen möchtest, sag einfach mal, welche. Ein bissi Zeit zum Zusammenstellen und Testen müßte ich finden, denke ich Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
whose
Nutzer
03.10.2005, 13:19 Uhr [ - Direktlink - ] |
Thema: Tester gesucht !
Brett: Programmierung Zitat: Jup, daran lags, nun ists besser mit der Größe Zitat:Zitat: Nee, das meinte ich nicht. Der Crosscompiler läuft dann doch ein wenig fixer als der native GCC. So ne Art "Docking Port" in WinUAE, um ausführbare Programme direkt an WinUAE zu übergeben war die Idee, die dahinter steckt. Also quasi eine noch engere Zusammenarbeit zwischen DevC++ und WinUAE. Müßte man mal mit Bernd Roesch bekaspern, wenn er nicht gerade wieder auf einem "OS4 ist unvollständig"-Trip ist. Dann könnte man evtl. sogar Debugging aus DevC++ heraus ermöglichen... Übrigens: Die DevPak-Anleitung ist klasse! Meinst Du denn, daß das Paket inzwischen für die Allgemeinheit tauglich ist? Ich meine, ja. Nachdem die Verzeichnisstrukturen jetzt stimmig sind und keine größeren Probleme aufgetaucht sind... ein Eintrag ins AN wäre da angebracht, damit das auch die mitkriegen, die hier im Forum selten mitlesen Gibt sicher noch mehr Leute, die DevC++ als gutes Entwicklungswerkzeug sehen und gebrauchen könnten... Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 |
|||||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |