ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
Holger
Nutzer
04.05.2010, 17:38 Uhr [ - Direktlink - ] |
Thema: SFS-Error ?
Brett: Amiga, AmigaOS 4 Zitat:Wie kann eine Fehlermeldung, die auf korrupte Daten hinweist, harmlos sein? Zitat:Ja, leere Partitionen haben selten strukturelle Fehler. Zitat:Ich finde es gut, dass Dich diese Frage beschäftigt. Du solltest Deine Kopie der Daten besser behalten und ab zu aktualisieren (der Vorgang wird auch Backup genannt)... Zitat:Ja, bis zum nächsten Mal... Neben den hier bislang genannten Hardwarefehlern, an die ich nicht so recht glaube, können natürlich auch Fehler, wie z.B. eine falsche Partitionierung mit sich überlappende Partitionsgrenzen oder ein Bug im Dateisystem dazu führen. Solche Fehler werden erst mit größerem Füllstand der Partitionen akut. Die Fehlermeldung deutet darauf hin, dass da wo eigentlich wichtige Partitionsdaten (wohl die Bitmap, die nicht mehr gelesen werden konnte) liegen müssten, plötzlich etwas anderes gefunden wurde (in diesem Fall der Beginn einer XML-Datei), d.h. diese Daten wurden von anderen Daten, die da nicht hingehören, überschrieben. So etwas würde mich auch beunruhigen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.05.2010, 15:49 Uhr [ - Direktlink - ] |
Thema: C oder C++?
Brett: Programmierung Zitat:Das hängt von der Frage nach dem Warum ab. Wenn ich eine Library-Funktion für Berechnungen aufrufe, gehe ich nicht davon aus, diese Output erzeugt. Wenn es etwas zu sagen gibt, sollte die Bibliothek das auf einen sauberen Weg dem Aufrufer mitteilen. Es wäre schon inakzeptabel, wenn wichtige Meldungen verloren gehen, weil die Konsole unsichtbar ist, schlimmer wäre es wenn stdout eine Dateiumleitung ist, weil ich ein Resultat an ein anderes Programm weiterreiche. Da haben irgendwelche printf's nichts zu suchen. Wenn die Bibliothek einen eigenen Logging-Mechanismus benötigt, der nichts mit dem I/O-Kontext des Aufrufers zu tun hat, wäre das ok und auch auf dem Amiga machbar. Das würde aber auch auf anderen Systemen nicht mit stdio funktionieren (und wird deshalb auch nicht mit stdio gemacht). Zitat:Oder in welche Speicheradresse der Fehlercode geschrieben werden soll. Und vor allem benutzen die typischen Implementierungen, wie bereits gesagt, Puffer, die nicht thread-safe sind. Trotzdem bereiten auch auf anderen Systemen Bibliotheken, die unerwartete I/O-Operationen durchführen, Probleme. Davon sollte man die Finger lassen. Das gilt im Übrigen auch für die AmigaDOS-Funktionen. Wenn der Aufrufer beispielsweise asynchrone I/O benutzt, kann die Verwendung von AmigaDOS-Routinen in der Bibliothek zum Absturz führen. Zitat:So einfach ist das nicht. Unter Linux geht man z.B. immer davon aus, dass das gesamte System von ein und demselben Compiler in exakt derselben Version mit denselben wesentlichen Optionen übersetzt wurde. Je mehr man davon abweicht, desto mehr Probleme kann man erwarten. Bei den neueren Amiga-Betriebssystemen kann man ähnliches machen, weil es auch dort im Prinzip außer gcc nichts anderes mehr gibt, höchstens noch vbcc. Aber beim "Classic" AmigaOS war das nie eine Option. Zitat:Berücksichtigt das auch den Fall, dass es keine Console gibt, bzw. dass der Aufrufer nicht einmal ein Prozess ist? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.05.2010, 14:20 Uhr [ - Direktlink - ] |
Thema: C oder C++?
Brett: Programmierung Zitat:Real-life Code und portabler Code im Sinne von C scheinen sich ohnehin von vornherein auszuschließen. Zitat:Für shared libraries ist es sowieso ein No-Go, denn die Bibliothek weiß ja gar nicht, ob das aufrufende Programm ein GUI-Programm ist, bzw. ob es überhaupt eine Konsole besitzt, bzw. was es bedeutet, in die jeweilige Standardausgabe zu schreiben. Hinter dieser kann sich schließlich auch etwas ganz anderes als eine Konsole verbergen. Zitat:Das ist der Hersteller von äußerst bekannter Software namens "Fenster" und "Büro", wobei aber nicht, wie man meinen könnte, das Büro ein oder mehrere Fenster besitzt, sondern "Büro" innerhalb von "Fenster" installiert wird... Zitat:Ähem. So etwas passiert genau einmal nach dem Laden der Bibliothek, und ähnliches passiert auch beim Amiga, wenn nach dem Laden einer ausführbare Datei Adressen an die tatsächliche Position im Speicher angepasst werden. Zitat:Deshalb funktionieren DLLs selbst unter Windows 3.1 auf einem 386 mit 14MHz... Zitat:Wenn man bedenkt, dass der identische Library-Initialisierungscode, inkl. der Verwaltung des Zählers für Anzahl benutzender Programme sich in jeder Bibliothek erneut wiederfinden, statt einmal im Betriebssystem, relativiert sich diese Effizienz erheblich. Die Design-Entscheidung, keine symbolischen Namen, sondern eine Tabelle mit 68k-Sprungbefehlen relativ zum Register A6 zu benutzen, die selbst unter der bevorzugten Programmiersprache C ein Fremdkörper ist, muss man akzeptieren. Aber nicht unbedingt glorifizieren. Diese Art des Linkens ist aber auch gar nicht der Grund, warum man Amiga-Libraries nicht so wie Windows oder Unix-Libraries benutzen kann. Der springende Punkt ist hier, dass man nicht die Datensegmente einer Objektdatei automatisch pro Prozess anlegen lassen kann. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
29.04.2010, 19:06 Uhr [ - Direktlink - ] |
Thema: C oder C++?
Brett: Programmierung Zitat:sprintf könnte vielleicht noch funktionieren, von fopen würde ich die Finger lassen. Zitat:Ob die Funktionen thread-safe sind oder nicht, ist noch mal eine eigene Baustelle. Allgemein lautet die Antwort auf Deine erste Frage ja, die dynamisch geladenen Bibliotheken verhalten sich auf diesen Systemen kaum anders als zum Programm statisch gelinkte Bibliotheken. Der (read-only) Programmcode wird zwar geteilt, alle Variablen existieren aber jeweils pro Prozess. Das heißt aber nicht zwangsläufig, dass die jeweilige Bibliothek noch korrekt arbeitet, wenn dieser Prozess mehrere Threads erzeugt und die Funktionen von mehreren Threads aus aufruft. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
28.04.2010, 21:01 Uhr [ - Direktlink - ] |
Thema: C oder C++?
Brett: Programmierung Zitat:Du hast ja auch die Aussage verallgemeinert, in dem Du sie aus dem Zusammenhang gerissen, und den einschränkenden Teil "es sei denn der Autor der spezifischen Version weist ausdrücklich auf eine solche Eignung hin" unterschlagen hast. Dass es um stdio und real existierende Amiga-Compiler ging, war eigentlich auch klar. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
28.04.2010, 15:46 Uhr [ - Direktlink - ] |
Thema: C oder C++?
Brett: Programmierung Zitat:Wenn das alleine ausgereicht hatte, hattest Du nur verdammt viel Glück (Bzw. nicht ausreichend getestet). Die C-Funktionen sind grundsätzlich nicht für den Einsatz in einer Amiga-Bibliothek geeignet, es sei denn der Autor der spezifischen Version weist ausdrücklich auf eine solche Eignung hin. Zitat:Wenn es eine Amiga-Bibliothek werden soll, wirst Du nicht um Amiga-spezifischen Code herumkommen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
26.04.2010, 22:19 Uhr [ - Direktlink - ] |
Thema: PlanePick / PlaneOnOff
Brett: Programmierung Zitat:Du musst das OS im NO_ORANGE_BACKGROUND Modus starten. Im Ernst, woher sollen wir wissen, was bei Dir los ist, wenn wir nicht mal ansatzweise wissen, was Du gemacht hast? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
26.04.2010, 13:13 Uhr [ - Direktlink - ] |
Thema: Virtualisierung?
Brett: Andere Systeme Zitat:Das ist ja kein Wunder, dass er das nicht geschafft hat. Ich hätte bei einem 1,2 MHz PC allerdings schon vor zwanzig Jahren ans Aufrüsten oder Ersetzen gedacht -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
26.04.2010, 12:17 Uhr [ - Direktlink - ] |
Thema: PlanePick / PlaneOnOff
Brett: Programmierung Zitat:Das haben sie doch. Dass Du nach zwei Tagen begriffen hast, wie man sie benutzt, heißt ja nicht, dass Du plötzlich der Erfinder dieser Routinen bist. Zitat:Da hilft es dann vielleicht, wenn man Englisch-Kenntnisse anwenden kann, minimale reichen ja schon aus, um den Unterschied zwischen Carry und Equal herzuleiten. Und wenn Du das "in der Regel" nicht benutzt, frage ich mich besorgt, was Du dann eigentlich machst, wenn Du zu programmieren glaubst. Nun gut, die Anzahl derer, die glauben "programmieren" bedeute "in Foren fragen", scheint ja stetig zuzunehmen... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
23.04.2010, 12:02 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Iwo. Gründe einfach ein Inkassounternehmen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
23.04.2010, 12:00 Uhr [ - Direktlink - ] |
Thema: Algo zum Kreiszeichnen
Brett: Programmierung Zitat:Eben. Und nur um dieses eine Beispiel ging es ja. Und da sich ja auch noch herausgestellt hatte, dass WritePixel() das Nadelöhr ist, und nicht der Basic-Code... Zitat:Das wird nicht die einzige Routine sein, die weit von der Perfektion entfernt ist. Die allgegenwärtigen doppelt-verketteten Listen z.B. sind auch nicht für jede Operation die optimale Datenstruktur. Das System hatte damals den anderen ein paar grundsätzliche Dinge voraus, man sollte es aber nicht als heilige Kuh der IT betrachten. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
22.04.2010, 19:14 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Danke für diese ausführliche Argumentation. Sie überzeugt mich allerdings nicht ganz, dass Du das Wesen von Buchgeld wirklich verstanden hast. Zitat:Papiergeld ist eine Form eines Schuldscheins. Es stimmt zwar, dass die Umkehrung nicht 100% gilt, weil man natürlich auch Steintafeln oder Baumrinde benutzen könnte. Im Zusammenhang dieser Diskussion ging es aber lediglich um die Grobeinteilungen "Geld mit Materialwert", "Geld mit materiellem Träger ohne Wert (des Trägers natürlich)" und "Geld ohne materiellen Träger".Zitat:Auch nicht irreführender aus Deine Formulierung, "Schließlich sind Schulden eine Form von Papiergeld.". Zitat:Ob man das Material auf dem Grund der Meere oder im Weltraum findet, wäre dabei unerheblich. Aber neben der Vermehrung des Materials gibt es noch eine zweite Quelle für eine mögliche Verminderung des Wertes: eine Verringerung der Wirtschaftskraft bei gleichbleibender Geldmenge. Zitat:So sieht's aus. Allerdings wurde das auch nicht abgestritten. Amaris glaubt nur an eine unterschiedlich starke psychologische Hemmschwelle der Geldarten. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
21.04.2010, 18:59 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Nix, aber darum ging es ja nicht. Es ging ja nur darum, dass ein System, in dem Buchgeld, warum auch immer, unmöglich wäre, ein System ohne Kredite wäre. Und in dieser Hinsicht war Deine Formulierung "Eine Abwesenheit von Buchgeld" irreführend. Die Anwesenheit eines Schuldners impliziert auch die Anwesenheit von Buchgeld, nur halt bei jemand anderen. Zitat:Genau das nennt man Inflation. Dass also mit Metallgeld keine Inflation möglich wäre, ist damit widerlegt. Genau darauf wollte ich Amaris hinweisen. Zitat:Da liegt ein Denkfehler vor. Unsere Staatsoberhäupter beschließen nicht einfach mal, ein paar Nullen an unser Geld anzuhängen. Die Festlegung des Euro-Wertes war eine Ausnahme. Heutzutage entsteht Inflation vorzugsweise dadurch, dass unsere Staatsoberhäupter Schulden machen, was einer Erhöhung der Buchgeldmenge entspricht und das vollkommen unabhängig von der Frage, ob es nebenher auch noch Scheine gibt oder nicht. Der gesamte Staatshaushalt besteht nur aus Buchgeld. Alle Steuern und andere Abgaben werden per Überweisungen getätigt und fließen auch in die andere Richtung wieder per Überweisung. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
21.04.2010, 11:33 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Nö. Wenn jemand Schulden hat, muss ein anderer zwangsläufig ein Guthaben besitzen. Also Buchgeld. Zitat:Falsche Zeit und falsche Spezies, würde ich mal sagen. Neuer Versuch...Zitat:Hat Dir das ein Neandertaler beim Bier erzählt? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
20.04.2010, 15:30 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Oder zum Beispiel Spanien Südamerika plündert und große Silbermengen in Europa einführt oder England bei einer Währungsreform Gold mit Absicht überbewertet, um dafür zu sorgen, dass sich Silber als Umlaufwährung, Gold dagegen als Sparform durchsetzt. Deshalb verwies ich ja darauf, dass es in der Vergangenheit bereits passiert ist. Nicht nur passieren kann. Zitat:Scheint so. Zitat:Na ja, man kann Gold zu mehr als nur Schmuckzwecken gebrauchen. Aktive Computernutzer, die sich auch für die Vorgänge im Inneren etwas interessieren, sollten das wissen... Zitat:Ein ausschließlich Edelmetall zulassender Zahlungsverkehr würde das durchaus verhindern. Schließlich sind Schulden eine Form von Papiergeld. Allerdings wäre ein System, das grundsätzlich keine Schulden zulassen würde, sehr ineffizient. Das wusste man schon vor einigen tausend Jahren... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
20.04.2010, 12:13 Uhr [ - Direktlink - ] |
Thema: Daten retten
Brett: Amiga, AmigaOS 4 Zitat:Genau das ist bei SFS die bevorzugte Art, Dateien zu speichern. Schließlich war das die Stärke von SFS gegenüber älteren Dateisystemen: Dateien nicht mehr als Ansammlung von Blöcken, sondern von Bereichen von Blöcken, für die es sich nur Start und Endblock merken muss, aufzufassen. Deshalb ist es gerade bei Seek innerhalb von größeren Dateien so viel effizienter (ich sag nur: ID3-Scan über mehrere Verzeichnisse...). Und wenn man dem Defragmentierer auch ab und an eine Chance gegeben hat, schließlich konnte der auch im Hintergrund werkeln, dürften die Chancen ziemlich hoch sein, dass ein Scan der rohen Plattendaten Dateien erkennen kann. Das klappt natürlich nur für bekannte Formate (JPG, etc.), und die Dateinamen kann man so natürlich nicht finden, das ist klar. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
20.04.2010, 11:52 Uhr [ - Direktlink - ] |
Thema: Hintergrundbild für eigenen Screen laden
Brett: Programmierung Zitat:Das habe ich schon verstanden. Zitat:Ich habe ja von Anfang an betont, dass es sehr stark davon abhängt, wieviele Objekte vorhanden sind, und wie viele davon sich verändern. Wenn Du 100 Objekte hast und alle Objekte von hinten nach vorne neu zeichnen musst, weil sich eines bewegt hat, kann ein Algorithmus, der dafür sorgt, dass Du nur 10 Objekte aktualisieren musst, enorm viel einsparen. Zitat:Möglicherweise bringt es ja etwas, die 3D-Funktion der Grafikkarte zu benutzen. Das hängt von der jeweiligen Grafikkarte (und natürlich den Treibern) ab. Zitat:Ja. Zitat:Wenn Du den Hintergrund in einer eigenen BitMap vorhältst, wäre es Ressourcenverschwendung, beim Hintergrund-Layer auch noch Smart-Refresh einzustellen. Die manuelle Variante ist aber auch nicht so schwer zu programmieren. Der Hintergrund-Layer muss nur dann aktualisiert werden, wenn sich ein darüber liegender Layer bewegt oder geschlossen wird. Wann immer Du eine solche Aktion durchführst, musst Du also danach das Dirty-Flag des Layers überprüfen. Wenn es gesetzt ist, dann rufst Du BeginRefresh auf, das bewirkt, dass die betroffenen Regionen in umgekehrte Clipping-Bereiche umgewandelt werden, auf deutsch, ab diesem Moment zeichnest Du nur in Bereiche, die die layers.library als beschädigt markiert hat. Dann musst Du nur einen Blit des gesamten Hintergrund-Bilders in diesen Layer durchführen und das System begrenzt diesen automatisch auf den neu zu zeichnenden Bereich. Danach rufst Du EndRefresh auf, um den Normalzustand wiederherzustellen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 18:27 Uhr [ - Direktlink - ] |
Thema: Hintergrundbild für eigenen Screen laden
Brett: Programmierung Zitat:Es geht ja nicht um den Algorithmus zur Sortierung (die Objekte müssen so oder so sortiert vorliegen), sondern darum, dass man mit dem richtigen Algorithmus unterm Strich möglicherweise weniger Pixel transferieren muss, wovon man gerade dann profitiert, wenn der Transfer so langsam ist. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 18:22 Uhr [ - Direktlink - ] |
Thema: Bargeldloser Verkehr ! Einge gute Idee?
Brett: Get a Life Zitat:Auch ein Metallwert ist nicht konstant. So hat zum Beispiel Silber im Vergleich zu Gold in der Vergangenheit stark verloren. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 18:18 Uhr [ - Direktlink - ] |
Thema: Telefonterror durch Anrufautomat
Brett: Get a Life Zitat:Laut Deinen eigenen Aussagen hast Du Deine Daten (bzw. die Deiner Schwester) rausgerückt. Zitat: Zitat: Zitat: Zitat: Deine Beiträge lesen sich immer noch schizophren... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 17:50 Uhr [ - Direktlink - ] |
Thema: Algo zum Kreiszeichnen
Brett: Programmierung Zitat:Die Frage war nicht, warum Du Dich damit beschäftigst, sondern warum Du MB von vornherein ausschließt. Zitat:Davon gehe ich aus. Die Frage ist nur, ob der Gewinn den Aufwand rechtfertigt. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 17:46 Uhr [ - Direktlink - ] |
Thema: Hintergrundbild für eigenen Screen laden
Brett: Programmierung @whose: Was Du schreibst, ist ja alles richtig. Aber ändert letztendlich nichts daran, dass ein Spiel, das nunmal nicht nur rechteckige Objekte besitzt (wie sähe das denn aus...), diese Objekte irgendwie zeichnen muss. Und egal, ob die Routine zum Zeichnen eines Objekts den Blitter oder die CPU, Chip-, Fast- oder VideoRAM verwendet, ändert das nichts daran, dass um diese Routine herum ein Algorithmus gebaut werden muss, der alle Objekt zeichnet, bzw. aktualisiert und das möglichst effizient. Zitat:Was meinst Du mit zerstört? Die Teile, die von einem anderen Objekt verdeckt sind, sind auf dem Bildschirm auch nicht vorhanden. Wenn sich ein Objekt aus einer Verdeckung hervor bewegt, muss der Teil, der vorher nicht sichtbar war, aktualisiert werden, und zwar nur dieser Teil. Das beherrscht die layer.library. Das ganze ist doch gar nicht so schwierig zu verstehen. Guck Dir die Workbench an, mache ein Dutzend Fenster auf und schiebe diese hin und her, auch mal eines, das teilweise hinter anderen liegt. Das sind nichts anderes als Layer, nur halt um Rahmen, Gadgets, MessagePort und Eingabeverwaltung erweitert. Aber die logische Zeichenfläche, das ist ein Layer. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.04.2010, 17:38 Uhr [ - Direktlink - ] |
Thema: custom sizing gadget
Brett: Programmierung Zitat:Gadgets haben keine Layer. Nur der Rahmen hat einen, wenn Dein Fenster vom Typ GZZ ist. Zitat:Wenn Du es so gemacht hast wie thomas, dann fehlt bei Dir das Flag, dass es sich um ein Border-Gadget handeln soll. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
13.04.2010, 19:41 Uhr [ - Direktlink - ] |
Thema: Algo zum Kreiszeichnen
Brett: Programmierung Zitat:Doch, das kann. Du schreibst selbst nur wenige Zeilen darüber: Zitat:Also wenn das kein Indiz dafür ist, dass unterschiedliche Algorithmen verwendet werden... Zitat:Gewagte Theorie, die sich aber leicht überprüfen ließe. Einfach mal ein Fenster so über das MB-Fenster legen, dass es den Kreis teilweise verdeckt. Wenn die Zeichenroutine direkt in die BitMap schreibt, müsste sie das Fenster überschreiben. Zitat: Was genau willst Du locken, bei einer nicht-RTG-BitMap? Zitat: Versteh ich nicht. Wenn Du jetzt schon mit WritePixel und Bresenham schneller als die originale Routine bist, warum sollte es dann ohne plötzlich zu langsam sein? Von welcher OS-Version gehst Du eigentlich aus? Ältere Version sind, was WritePixel angeht, sogar noch schlimmer als AOS3.1: die verwendeten den Blitter, dessen Initialisierung schon mehr Zeit kostet, als einfach via CPU in die BitMap zu schreiben. Es gibt, um auf Deine Frage zurück zu kommen, auch eine saubere Lösung, um WritePixel zu umgehen: Erzeuge eine BitMap der Tiefe eins und setze in dieser die Pixel direkt von Hand. Das ist für eine OCS/ECS/AGA BitMap vollkommen legal, da es sich um Deine private BitMap handelt und keinerlei Layer o.ä. zu berücksichtigen sind. Danach blitte diese BitMap in einer einzigen Operation in die Ziel-BitMap, unter Verwendung derselben BitMap als Maske. Verwende BltBitMapRastPort, damit die Layer korrekt berücksichtigt werden. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
13.04.2010, 19:12 Uhr [ - Direktlink - ] |
Thema: Hintergrundbild für eigenen Screen laden
Brett: Programmierung Zitat:Irgendwie scheinen wir aneinander vorbei zu reden. Nochmal: bis einschl. AOS3.9 hat ein Layer immer eine rechteckige Form und das heißt, alle Pixel unterhalb dieses Rechtecks werden immer als verdeckt betrachtet und deshalb werden alle darunter liegenden Pixel niemals neu gezeichnet. Wenn Du in dieses Rechteck mit einer Maske blittest, bleiben alle in der Maske nicht gesetzten Pixel unverändert und enthalten somit einen unspezifischen Wert, der nur im absoluten Glücksfall dem Hintergrund entspricht, von dem Du offensichtlich willst, dass er an diesen Stellen durchscheint. Die Form eines Objekts bestimmt zwei grundsätzliche Dinge: Mit Deiner Maske erledigst Du den zweiten Punkt, der erste fehlt aber. Zitat:Um Himmels Willen nein. Wenn Du Layer verwendest, sorgt die Layers-Library automatisch dafür, dass nur die Zeichenoperationen im sichtbaren Bereich ausgeführt werden. Das hat mit dem Sperren von Layern überhaupt nichts zu tun. Einzige Voraussetzung ist, dass Du die Graphics-Funktionen benutzt, die ein RastPort-Argument erwarten, und dass in diesem RastPort auf den zugehörigen Layer verwiesen wird (bei RastPorts von Intuition-Fenstern ist das vom System bereits so eingerichtet). Genau deshalb kannst Du die Layer auch nicht für nicht-rechteckige Objekte verwenden: es wird automatisch alles beim Refresh weggelassen, was unterhalb eines solchen Rechtecks liegt. Und das ist für Deinen Anwendungsfall zuviel. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
11.04.2010, 14:03 Uhr [ - Direktlink - ] |
Thema: Problem mit smbfs
Brett: Amiga, AmigaOS 4 Zitat:Die Registry besteht aus mehreren Teilen, sog. Hives, von denen der, der für die persönlichen Einstellungen eines Benutzers zuständig ist, auch im Profil-Ordner des Benutzers liegt. Davon abgesehen gibt es für jeden einzelnen Registry-Eintrag, genauso wie für Dateien, explizit setzbare Zugriffsrechte. Natürlich kann man systemweite Einstellungen für ein Programm auch im Programmordner speichern. Man kann aber mit solch einer INI-Datei weder Änderungen an den Default-Werten für einen Benutzer ohne Administratorrechte, noch unterschiedlichen Einstellungen pro Benutzer verwalten. Das könnte man dann zwar mit mehreren INI-Dateien oder einer gemischung Verwendung von INI-Dateien und Registry hinbekommen, das resultiert aber letztendlich im Neuerfinden des Rads und entsprechender Ressourcen-Verschwendung. Mit der Registry hat man eine einheitliche Schnittstelle für alle Einstellungen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
11.04.2010, 13:56 Uhr [ - Direktlink - ] |
Thema: Problem mit smbfs
Brett: Amiga, AmigaOS 4 Zitat:Was ist denn bitteschön daran kompliziert, dass die Systemwiederherstellung dazu dient, das System wiederherzustellen, und damit zu einer System Neuinstallation komplett im Widerspruch steht? Nehmen wir mal für einen Augenblick an, die Systemwiederherstellung hätte nach der Neuinstallation funktioniert. Dann hättest Du jetzt ein System exakt im Zustand vor der Neuinstallation, also komplett vermurkst. Welche Sinn hätte dann Deine Neuinstallation gehabt? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
10.04.2010, 19:44 Uhr [ - Direktlink - ] |
Thema: Problem mit smbfs
Brett: Amiga, AmigaOS 4 Zitat:Richtig, das sind meistens die Programme, die nur im Administratormodus funktionieren, weil sie sonst nicht ihre Konfigurationen schreiben können. Gibt's allerdings heutzutage wieder, und zwar als "portable Software", die allerdings vorzugsweise nicht in "C:Programme", sondern auf einem Wechseldatenträger, der nur von einem User benutzt wird, installiert werden soll. Zitat:Ich weiß nicht so recht, was überhaupt Zweck hat, wenn jemand sein System neu installiert, und es dann mit der "Systemwiederherstellung" wiederherstellen will... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
10.04.2010, 19:39 Uhr [ - Direktlink - ] |
Thema: Problem mit smbfs
Brett: Amiga, AmigaOS 4 Bild: http://www.smilies.4-user.de/include/Wut/smilie_wut_027.gif -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
10.04.2010, 18:04 Uhr [ - Direktlink - ] |
Thema: Problem mit smbfs
Brett: Amiga, AmigaOS 4 Zitat:Die Startmenüeinträge benötigen keine Registry-Einträge. Startmenüeintrage sind Verknüpfungen und können als solche wie normale Dateien gesichert werden. Nur dass sie halt nicht im Programmordner, sondern im Verzeichnis für das persönliche Startmenü (oder dem für alle Benutzer) liegen. Zitat:Da gehören sie nunmal hin, zumindest wenn man die für Windows geltenden Richtlinien befolgt. Wenn die Programmierer sich nicht dran halten, würde erst recht gemeckert werden und das zu recht. Unter AmigaOS werden Einstellungen in ENVARC: gespeichert, also auch nicht im Installationsverzeichnis des Programms. Und manche brauchen auch noch Assigns, die via user-startup gesetzt werden, zum korrekten Funktionieren, und deshalb funktioniert da ein Backup, das diese Dinge nicht mit einschließt, auch nicht. Wobei ein Wiederherstellen der user-startup dem Sinn des Neuaufsetzens des Systems widersprechen würde... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |