![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
whose
Nutzer
10.09.2006, 15:36 Uhr [ - Direktlink - ] |
Thema: warum man ein AOS mit seriösem Marketing nicht etablieren kann
Brett: Get a Life Zitat: Sowas ist schon in Arbeit, sogar in mehreren "Geschmacksrichtungen" ![]() Zitat: Dürfte auch schwierig werden ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 14:29 Uhr [ - Direktlink - ] |
Thema: jpeg's sichern unter OS4?
Brett: Programmierung Zitat: Das ist eine Frage des Datatypes. Soweit ich weiß, gibts auch für die 68K-Systeme kein Datatype, das JPEG speichern kann. Vielleicht die akDatatypes, aber genau weiß ich das auch nicht. Ich habe immer nur IFF verwendet ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 14:20 Uhr [ - Direktlink - ] |
Thema: jpeg's sichern unter OS4?
Brett: Programmierung Zitat: Bei 68K-Code wie gewohnt, für PPC-Code muß für die 68K-Library noch eine Datei mit Glue-Code für die Library vorhanden sein (mit Endung .l.main, die stellt das Library Interface "main" für OS4-PPC-Code zur Verfügung). Ich schau nachher mal, ob ich das Zeug für die jpeg.library irgendwo rumsegeln hab. Ansonsten müßte das mittels idltool erzeugbar sein. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 14:04 Uhr [ - Direktlink - ] |
Thema: jpeg's sichern unter OS4?
Brett: Programmierung Zitat: Mit der 68K-Variante sollte es aber gehen. PerfectPaint benutzt auch jpeg.library, soweit ich weiß, und das tut unter OOS4 inzwischen. Im Zweifel kannst Du mir ja ein Testprogramm schicken, dann probiere ich das aus. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 13:49 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung @MaikG Guggst Du! code:WHILE myseconds%<20 POKEW tr& + tr_node% + IORequestio_Command%, TR_GETSYSTIME& junk& = DoIO&(tr&) mymicros&=PEEKL(tr& + tr_time% + tv_micro%) mysecs&=PEEKL(tr& + tr_time% + tv_secs%) REM So! POKEW tr& + tr_node% + IORequestio_Command%, TR_ADDREQUEST& POKEL tr& + tr_node% + tv_secs%, mysecs& REM und so! POKEL tr& + tr_time% + tv_micro%, mymicros&+125& REM 125=8000Hz SendIO&(tr&) INCR mycount%:IF mycount%=8000 THEN mycount%=0:INCR myseconds% rem :move rpS&,20,25:Text rpS&, SADD(TIME$+CHR$(0)),8 REM bla%=goertzel%((PEEKB(&hBFE101) - 127)<<8) junk& = WaitIO&(tr&) REM junk% = finish_wait(tr&) WEND Du solltest Dich noch mal kundig machen, wofür die Struktur-Einträge gut sind und was sie bedeuten. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 10.09.2006 um 14:07 Uhr geändert. ] |
|||||
whose
Nutzer
10.09.2006, 04:05 Uhr [ - Direktlink - ] |
Thema: warum man ein AOS mit seriösem Marketing nicht etablieren kann
Brett: Get a Life Zitat: Also, es wäre schon cool, wenn Du bei den Zitaten angibst, von wem sie stammen. Da war zwischendurch mal ein Teil von Maja drin, es liest sich aber so, als gehörte das zu meinem Posting ![]() Zum Thema Erweiterungen: Ich hatte in der Zwischenzeit im µA1 mal eine Terratec Audiokarte und eine Envy zum Testen. Zur Zeit tut ein SII 0680 seinen Dienst. Also geht da was einzubauen ![]() Beim Amithlon gabs bei mir vor allem Streß mit den Netzwerkkarten. RTL8039 kriegte ich nie zum Laufen, warum auch immer. Ne olle 8029 wollte auf Anhieb, aber das war irgendwie doof. Da hat man schon nen 1,6GHz Athlon und das Netzwerk läuft nur mit 10MBit. Andere Hersteller waren erst Recht keine Option, es gab ja keine Treiber ![]() Von dem GraKa-Theater mal gar nicht zu reden. Die GeForce2 war zu dem Zeitpunkt, wo ich den Amithlon mal ernsthaft aufgesetzt habe, kaum zu bekommen. Ich habe mir dann mit einer Uralt-TNT2 vom Grabbeltisch aufm Flohmarkt geholfen, weil alles andere No-Op war. Keine Treiber. Für mich war all das der Grund, Amithlon Amithlon sein zu lassen und statt dessen auf WinUAE zu setzen. Da mußte ich nicht viel basteln und rumprobieren, das Teil läuft. Egal, welche Netzwerkkarte oder Grafikkarte. Genau wie beim µA1. Der läuft, ohne Zicken, ohne irgendwelche Experimente. Und ich kann dir aus meiner H&P-Support-Zeit versichern, daß ich nicht der einzige mit den Amithlon-Sorgen war. Im Prinzip war die Idee von Amithlon nicht schlecht, aber die Ausführung war lange nicht so gut, wie sie hätte sein müssen, um ein Kassenschlager zu werden. Der Zug ist ja nun abgefahren (Amithlon ist nicht mehr erhältlich, es sei denn gebraucht oder gar als Raubkopie) und im Endeffekt hat das Desaster auch gezeigt, das und vor allem warum x86 keine wirkliche Option ist. Meine Meinung. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 03:47 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung @Mad_Dog: Also, so recht kapiere ich nicht, weshalb das so langsam abläuft. Ich würds ja verstehen, wenn SetAPen() innerhalb der Schleife benutzt würde, aber so... ich hab hier n kleines Spiel laufen, das 64 32x32-Pixel-Tiles blittet, das läuft auch auf AGA schnell genug, so daß man den Bildaufbau kaum mitverfolgen kann. Okay, ich blitte da aus einer Hintergrund-Bitmap ins Fenster, benutze also keinen temporären Rastport, aber so dramatisch sollte der RastPort die ganze Sache eigentlich nicht verlangsamen. Sehr seltsam... testen kann ich das mangels Sampler leider nicht selbst ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
10.09.2006, 03:36 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung @MaikG: Die tv_secs solltest Du aber schon mit in den IORequest für die WAIT_UNTIL-Unit übernehmen, damit das hinhaut. Schließlich bekommst Du da die Systemzeit, da gehören nach dem Boot mit Sicherheit schon einige Sekunden dazu. microsecs bedeutet ja "Millionstel Sekunde", nicht soundsoviel "Ticks" seit Start der Systemzeit o.Ä. Die Sekunden werden extra gezählt. So wartet das Teil bis zum nächsten Auftreten von "0 tv_secs + x tv_microsecs + 125", was bei einem 32Bit-Zähler für die Sekunden schon mal eine Weile dauern kann ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 14:16 Uhr [ - Direktlink - ] |
Thema: 1x PC gekauft und schon ein Fehlkauf Amiga bleibt meine Nr1!!
Brett: Andere Systeme @Andreas_B: Ich meinte damit, daß man notfalls auch WinUAE von Hand runterregeln kann, wenn Windoof mal klemmen sollte und man nicht jedesmal WinUAE minimieren möchte. Der JIT hilft natürlich auch kräftig dabei mit, vor allem, wenn man ihm genug Puffer bietet. Aber das Thema ist in der heutigen Zeit eh nicht mehr so sehr von Belang, 512MB RAM haben die meisten PCs ja schon von Haus aus (manche auch mehr). Puffer auf Maximum und fertig. Mit dem "CPU Idle"-Regler von WinUAE kann man auch noch ein klein wenig reißen. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 14:07 Uhr [ - Direktlink - ] |
Thema: warum man ein AOS mit seriösem Marketing nicht etablieren kann
Brett: Get a Life @bernd_roesch: Glaubst Du wirklich, alles würde mit einem Schlag anders, nur weil ein AmigaOS auf x86 läuft? Was wäre denn dann an bereits vorhandenen "Defiziten" erledigt, außer der Hardware-Situation? Nichts. Wer von den "Proggern" da draußen interessiert sich denn noch für AmigaOS? Wenige, sonst hätten die keine Probleme, sich UAE auf ihre Windows- oder Linux-Kisten zu werfen und loszulegen. OS3.9 an sich ist schon gut genug, um auch beim Proggen Spaß zu machen und zu tun/verbessern gäbs da auch noch genug. Abgesehen davon gibts auf dem Weg UAE kein Hardware-Problem. Erstaunlicherweise existiert dieser Weg nun schon einige Jahre, ohne daß sich an der allgemeinen Situation viel geändert hätte. Meiner Meinung nach liegt der Niedergang des AmigaOS vor allem in seinen Benutzern begründet, die Ansprüche aufgrund unzulässiger Vergleiche hochschrauben "eine PPC-Hardware muß soundsoviel GHz haben, mindestens PCIe unterstützen, das gibts ja bei x86 schon länger, diese oder jene Software muß kostenlos sein, ist sie im Windows-Bereich ja auch blafasel...". Muß sie das? Wofür? Welche sagenhafte "Soft" gibts denn, die dermaßen hohe Leistung überhaupt ausnutzt? Mir wäre ein µA1 mit 1,6GHz ehrlich gesagt sogar schon viel zu schnell, der 800er geht ja schon ab wie sonstwas (ja, auch 68K-Programme). Noch dazu läuft die Kiste so, wie sie geliefert wurde. Kein Heckmeck mit "unpassenden" Erweiterungen, wo man ewig lange auf Treiber warten muß. Das Ding läuft, gut ist. Genau sowas wünsche ich mir auch für neue Hardware, egal, wie schnell oder langsam diese dann ist. Selbst bei einem 400MHz-Board, das auf den Embedded-Bereich zielt, wünsche ich mir das. Auspacken, anschließen, starten. Kein Gefummel, keine "Bissigkeiten" zwischen Komponenten untereinander, kein Ärger. Garantieren kann man das im Grunde nur, wenn man beides "im Griff" hat. Bei x86-Hardware suchst Du oft vergebens nach Dokumentation, von Chipsätzen (modernen vor allem) mal nicht zu reden. Würde da ein beliebter Chipsatz nicht unterstützt, von dem es schlicht keine Dokumentation gibt (aber Linux-Treiber, wenn auch nur in Binärform), dann würdest Du (und viele andere) auch wieder anfangen zu jammern. Im Grunde kann ein OS-Team im Bereich Amiga gar keine richtige Hardware-Wahl treffen. Es gibt immer genug Leute, die nur rummeckern, egal, was gemacht wird. Das Gleiche bei der Software. Es wird was angekündigt, der Programmierer (nicht der Ankündiger) steigt aus. Wer ist Schuld? Natürlich der, der angekündigt hat. Im Grunde kann derjenige nichts dafür und bringt sicher auch seine volle Leistung ein, um was dran zu ändern, aber das ist den werten Usern natürlich nicht gut genug. Statt Unterstützung anzubieten oder wenigstens Verständnis für die dumme Lage zu bekunden, wird lieber auf den Ankündiger eingehackt ("Der kann doch auch proggen, soll er das selber machen!") und wenig später gejammert, weil das Projekt aufgrund der Anfeindungen eingestampft wird. Und selbst dann heißts wieder "Siehste, das haben wir ja immer gesagt", statt den Fehler zuerst mal bei sich selbst zu suchen. Selbsterfüllende Prophezeihungen nennt man sowas. Bevor Du was zum Thema "Ankündigungen und whose" vom Stapel läßt: Denk dran, daß ich bisher nur Dir davon erzählt habe und keinen Termin genannt habe (aus guten, beruflichen, Gründen). Es wäre nett, wenn Du das einfach für Dich behalten kannst. Hätte ich gewollt, daß etwas in die Öffentlichkeit kommt, hätte ich das auch öffentlich geschrieben. Ok? Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 13:28 Uhr [ - Direktlink - ] |
Thema: 1x PC gekauft und schon ein Fehlkauf Amiga bleibt meine Nr1!!
Brett: Andere Systeme Zitat: Wenn er statt OS3.9 z.B. ein AmiKit-System aufsetzen will, braucht er auch eine Workbench, da AmiKit bestimmte Teile davon installiert, sofern man es nicht mit OS3.9 zusammen aufsetzen will. Besser, er bereitet das einmal vor ![]() Zitat: Eben aus dem Grund. Standardmäßig geht WinUAE mit der Priorität runter, wenn es minimiert ist. Wäre das nicht der Fall, würde der Pentium 700 ziemlich "einknicken". Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 13:21 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: Ich bin davon ausgegangen, daß MB daraus ein CLI-Programm generiert. Textausgaben in den CLI kosten schon recht viel Zeit. Intuition ist da ja nur die letzte Instanz, da kommt ja noch der CON-Handler dazwischen, dos.library, diverser Format-Code der Textausgabefunktion etc. Laß doch mal 100 Mal in einer Schleife einen Text ausgeben, das dauert dann schon ne ganze Weile. Ja, bei z.B. LimpidClock schlägt es auch quer, und zwar gewaltig. Sehr schön zu sehen, wenn man Thilos AsteroidsTR dazu laufen läßt. Jede Sekunde ruckelts einmal kurz. WB-Uhren (Uhren generell) sollte man bei solchen Tests beenden. Das hat aber weniger mit den Timern zu tun als mit Bitmap-Locks u.Ä. Zitat: Nicht vergessen, aus TR_GETSYSTIME dann TR_ADDREQUEST zu machen. Oder, noch besser, mit zwei IORequests arbeiten. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 02:32 Uhr [ - Direktlink - ] |
Thema: 1x PC gekauft und schon ein Fehlkauf Amiga bleibt meine Nr1!!
Brett: Andere Systeme Zitat: Ja, was nützt die dickste Pipeline, wenn man nur ne Gieskanne voll Öl vom Lieferanten bekommt? ![]() Zitat: Guggst Du hier. Zitat: Naja, das ist (für die Workbench) etwas komplexer. Zumindest ein ADF für die Workbench samt HDToolBox müßtest Du auf Deinem echten Amiga produzieren. Dann noch ein ROM-Image. Das ist aber recht gut erklärt in der Anleitung zu WinUAE/UAE. Sobald das alles läuft, kannst Du ein Festplatten-Image (virtuelle Festplatte) einrichten und von CDROM OS3.9 darauf installieren. Oder eben WB 3.1 mit Hilfe von Disketten-Images der Installationsdisketten. Der Rest funktioniert, wie Du es von Deinem Amiga her kennst. Sogar AWeb/IBrowse/Voyager kannst Du installieren und benutzen. Und natürlich auch das halbe Aminet leersaugen ![]() Zitat: Eine sehr nette Sache in dem Zusammenhang ist AmiKit (habe den Link gerade nicht parat. Eine kleine Suche via AN-Suche oder Google dürfte da aber helfen ![]() Wenn Du das noch dazu saugst und (laut Anleitung) installierst, hast Du n richtig nettes OS3.x-System mit allen denkbaren und undenkbaren Utilities/Tools drauf. Ich finds jedenfalls nicht schlecht. Für die Arbeit habe ich allerdings ein OS3.9-System (ganz normal installiert), weil das doch auf einigen Schnickschnack verzichtet, der bei AmiKit standardmäßig draufgeschmissen wird. Im Fenster-Modus von WinUAE läuft das doch etwas flotter, als ein vollständiges AmiKit-System. Und nein, Windoof wird von WinUAE nicht "kastriert". Wenn WinUAE den Fokus hat, läufts etwas hakeliger, das ist aber auch alles. Man kann WinUAE aber auch "tunen", so daß Windoof von der Emulations-Arbeit nicht allzu sehr beeinträchtigt wird, was das Tempo angeht. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 09.09.2006 um 02:34 Uhr geändert. ] |
|||||
whose
Nutzer
09.09.2006, 00:54 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: Das ist schon recht merkwürdig. Den Goertzel hast Du auch rausgenommen und die Werte in ein Array schreiben lassen? Wenn ja, und die Timer sind auch raus, verbockt MB da irgendwas. Zitat: Allein das ist schon merkwürdig. Die Textausgaben kosten eine Menge Zeit, da sollte sich ein Weglassen schon bemerkbar machen. Zitat: Einen Request mit TR_GETSYSTIME schicken, das Ergebnis + 125 micros in den IOrequest eintragen, weg damit zum timer.device, warten. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
09.09.2006, 00:48 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: Mal abgesehen davon, daß in dem C-Beispiel ZWEIMAL "gewartet" wird. Einmal mittels WaitPort() auf den TimerMP, dann nochmal mittels WaitIO(). WaitPort()/GetMsg() tut seinen Dienst hervorragend und man kann den Request direkt wiederverwenden. Zitat: Jetzt würde mich mal interessieren, wie Du das "die Timer werden langsamer" gemessen hast. In vielen Fällen (hohe Systemlast) kann es sogar passieren, daß die Timer schneller werden... Zitat: Ja und? Was heißt das? Ich weiß nur, daß die Timer recht genau laufen, auch bei sehr kleinen Zeitabschnitten. Die Drift wird erst dann sehr hoch, wenn ein anderer Task fast 100% der Systemzeit bekommt/frißt. Die Drift kann dabei in beide Richtungen laufen. Wenns denn unbedingt sein muß, nutz doch mal die Zähler der CIA direkt. Irgendwo in den RKMs geistert ein Beispiel dafür rum, wie man das macht. Dann siehst Du ja, ob die Timer tatsächlich "langsamer" werden. Ich glaube da nicht so wirklich dran. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
08.09.2006, 18:37 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung 125 µHz liefern die CIA-Timer relativ problemlos und selbst bei hoher Last ohne große Drift. Viele AHI-Treiber z.B. benutzen diese Timer. Ich vermute, daß irgendwo zu viel Zeit verplempert wird, bevor der Timer neu gestartet wird. Das muß sehr flott gehen, alles andere kann und muss warten. Ich weiß auch nicht, ob es so sonderlich genial ist, ein WaitIO() vor den Neustart des Timers zu setzen (C-Variante). Das würde ich mal weglassen. Im BASIC-Programm dürften die Textausgaben störend wirken, nun weiß ich nicht, wie viele davon schon zu Testzwecken weggelassen wurden, um das Ganze schneller zu kriegen. Da dürfte auf jeden Fall noch was zu holen sein. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 08.09.2006 um 18:48 Uhr geändert. ] |
|||||
whose
Nutzer
07.09.2006, 17:12 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Dann probier das doch nochmal auf einem blanken 3.1-System. Ich denke nämlich schon, daß da ein Workaround eingebaut wurde, um eben genau dieses Problem älterer Software zu beheben. Zitat: Hm, da hast Du eine interessante Idee ins Spiel gebracht... ich notier mir das mal ![]() Zitat:Zitat:Was heisst echt? Das ist richtig. Ich meinte allerdings mehr einen bspw. A1200, wie er zum Spielen gern verwendet wird. Also ohne OS3.9 und ohne P96. Darauf dürfte Dein Programm wahrscheinlich Probleme machen. Für Spiele (die kommerziellen Titel vor allem) ist die graphics.library wohl auch nicht so sehr von Belang. Selbst viele PD-Titel haben die fürs Blitten außen vor gelassen. Die Geschichte wurde von Darius, malte2 und georg ja nicht nur so aus Spaß erwähnt... Um mal wieder aufs letzte Thema zu kommen: Gibts eigentlich Informationen darüber, welche GraKas WaitTOF() bzw. WaitBOVP() in Hardware unterstützen oder wie die Emulation dieser Funktionen per Software genau funktioniert? Es ist irgendwie lästig, daß man sich nie sicher sein kann, ob eine Grafik flackerfrei auf den Bildschirm kommt, je nach System. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
07.09.2006, 16:41 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung @Holger: Und welches System ist das genau? Zumindest hast Du damit gezeigt, daß die von Dir befürchtete "Inkompatibilität" nicht (mehr) besteht. Obwohl ich dieses Funktionieren eher als Workaround betrachten würde. Hast Du das Programm mal auf nem "echten" AGA-Amiga getestet? Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
06.09.2006, 15:12 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Das ist auch bei CGFX/P96 auf 68K-Maschinen und GraKa so. WaitBOVP() ist auf GraKas nicht zu gebrauchen (ist das technisch überhaupt machbar? Da war doch irgendwas, daß der Copper für den BOVP-Sync zuständig ist?). Wie das für WaitTOF() aussieht, kann ich nicht genau sagen, das scheint aber zu funktionieren, da die DB-Funktionen des OS einwandfrei ihren Dienst tun (wenn auch etwas komplex zu handhaben). Bisher ist mir dabei noch kein Geflacker begegnet. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
06.09.2006, 11:27 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: Ja, falls. Wenn Du Dir den Rest des MB-Programms ansiehst, wird Dir & als Bezeichnerteil noch öfter begegnen. Daher vermute ich ganz stark, daß & einen long-Wert bezeichnet und MB keine Zeiger als Typ kennt. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 06.09.2006 um 11:30 Uhr geändert. ] |
|||||
whose
Nutzer
06.09.2006, 10:56 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung @gni: Ah so, das wußte ich nicht. Immerhin... aber einen Interleaved-Modus wirds da eher nicht geben, denke ich? Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
06.09.2006, 10:53 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: Ich kenne mich mit MB auch nicht so aus (AmigaBASIC bzw. ACE waren meine letzten BASIC-Erfahrungen auf dem Amiga) ![]() Es kann natürlich sein, daß UNIT_MICROHZ in den MB-Includes nicht korrekt definiert wurde. Ansonsten stellt es aber kein wirklich großes Problem dar, diesen (in C normalerweise als int-Konstante angegebenen) Wert in ein MB-Long zu packen. Die Prototypen in C zeigen für OpenDevice() jedenfalls ein ULONG für die Unit, insofern sollte das passen. Zeiger kennt MB meines Wissens nach auch nicht (gibts außer Blitz eigentlich einen Dialekt, der Zeiger direkt unterstützt?), ich gehe daher davon aus, daß auch Zeigerwerte (sinnvollerweise) in einer long-Variablen landen. Technisch ist das ja kein Unterschied und wäre in C (mit Cast) genauso machbar, wenn auch sehr unschön ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
06.09.2006, 10:29 Uhr [ - Direktlink - ] |
Thema: Tonerkennung
Brett: Programmierung Zitat: & bedeutet long, wenn ich mich nicht irre. Und die Includes sind für Basic etwas anders aufgebaut, einen Präprozessor scheints bei MaxonBasic nicht zu geben. Daher behilft man sich wohl mit long-Variablen, evtl. in Form von const UNIT_MICROHZ& = ... Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 21:57 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung @Holger: Sorry, so ganz kann ich das nicht nachvollziehen mit der "Inkompatibilität" von BltBitMapRastPort(). Für mich klingt es logischer, daß auch die Maske etwas anders aussehen muß, wenn der Blitter auf andere Art arbeitet. Es würde z.B. für mich keinen echten Sinn ergeben, wenn der Blitter für jede Quellplane stur die jeweils erste Zeile (also quasi nur Plane 0) der Maske benutzen würde, das wäre eher ein Nachteil. Auf dem anderen Weg kann man "ganz nebenbei" noch andere (nicht nur unerwünschte) Effekte erzielen, indem man die "überflüssigen" Zeilen der Maske verändert. So muß man nicht an der Quelle "schrauben", bevor man den Blit einleitet. Die Inkompatibilitäten kommen ja eigentlich "nur" dadurch, daß man beim OS zu spät daran gedacht hat, daß es auch andere Bitmap-Formate geben könnte als Planar non-interleaved. Soweit ich das gelesen habe damals ist dieser Workaround auch nur für ein Problem mit AllocRaster()/AllocBitmap() gedacht, die es "verschlafen", die gewünschte Bitmap interleaved anzulegen (falls falsch, möge man mich korrigieren). Die Speicherersparnis wird ja auch mit einem gewissen Flicker-Risiko erkauft, da immer noch drei Blits fällig sind. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 05.09.2006 um 22:21 Uhr geändert. ] |
|||||
whose
Nutzer
05.09.2006, 21:33 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Ach so... ja, in die Falle laufe ich auch dauernd. Holger sagte es mir ja schon: Wichtig ist die Auslegung der Quell-Bitmap, nicht die des Ziels. Also sind die von den Icon-Funktionen gelieferten Masken schon korrekt und sollten die richtigen Ergebnisse beim Blitten bringen. Das Problem "Interleaved" stellt sich immer dann, wenn man innerhalb einer Bitmap "herumblittet" und die Quelle sowie die dazugehörige Maske nicht "selbst gebaut" hat bzw. die Maske zu der "fremden" Quelle bauen muß. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 21:03 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung @DariusBrewka: Ich glaube, nun hab ichs, worauf Du hinauswillst. Die Tatsache, daß die Vor-OS3.5-Icons keine Maske "transportieren", oder? Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 20:50 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Argh... ja, ich mal wieder... ![]() Dann verstehe ich Darius' Probleme mit den Icon-Masken allerdings nicht. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 20:47 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Anscheinend. Ich dachte, Du meintest als Screen-Default. Zitat:Zitat:Da würde ja lediglich Blits mit dem Screen als Quelle betreffen (die eher die Ausnahme sind). Und wenn man bytesPerRow korrekt berücksichtigt, gibt es die Probleme ja gar nicht. Aber CustomScreens haben trotzdem den default {SA_INTERLEAVED, FALSE}. Hm, das würde also bedeuten, daß Programme, die auf der WB laufen und innerhalb ihres Fensters mittels Blitter und Blitmaske z.B. Grafik "verschieben", versagen, sofern sie auf "altväterlichem" Weg die Maske anlegen? Wenn ja, sollte ich mir das dringend notieren, weil ich so ein Programm in Arbeit habe, das evtl. auch auf OS3.0/3.1 laufen soll... Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 20:32 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung Zitat: Die sollten normalerweise die korrekten Masken liefern. Ich hab mich mit den Icon-Funktionen noch nicht beschäftigt. Haben die denn kein Argument alá Friend bei AllocBitmap()? Also eine Angabe, für welchen Screen man die Maske gerne hätte? Wenn nicht, was spricht dagegen, die Maske in eine dem Screen angepaßte Bitmap "vorzublitten", bevor man sie benutzt? Dabei sollte sie ins passende Format konvertiert werden (unter OS3.5+ oder 3.9). Okay, ist mehr Aufwand, aber den hat man eigentlich immer, wenn man die älteren OS-Versionen noch berücksichtigen möchte... Zitat: Naja, einen Nachteil muß die Methode haben. Es gibt halt eher selten etwas, das nur Vorteile hat. Abgesehen davon muß man ja nicht zwingend mit Interleaved-Screens arbeiten, wenns ums Speicher sparen geht. Im Grunde hast Du aber Recht, die Planargrafik war letztendlich nicht der Weisheit letzter Schluß. Und AAA sollte ja Chunky-Grafik bringen, die wir nun mit den GraKas haben. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
05.09.2006, 20:15 Uhr [ - Direktlink - ] |
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung @Georg: Ah, danke für den Code von Olaf. Den hatte ich bei meiner Verzweiflung bezüglich der Blitterei per Google mal gefunden und der war sehr hilfreich. Soweit ich weiß, ist dieses Problem von AllocBitmap() mit OS3.9 (oder sogar 3.5? Weiß ich gar nicht so genau) behoben worden. Bei mir liefs jedenfalls ohne den Trick, und an einen Zufall glaube ich dabei nicht, auch wenn ich das nur ein Mal getestet habe. Grüße -- --- ![]() ![]() |
|||||
|
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |
![]() |