ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
MaikG
Nutzer
15.04.2008, 09:38 Uhr [ - Direktlink - ] |
Thema: Interneteinwahl mit Modem und uralt PC
Brett: Andere Systeme Bei O2 hat man wesentlich günstigere Router. Aber hier ist der O2 Empfang meist schlecht, obs umts hier gibt weiss ich nicht. Ein Handyvertrag hat nicht jeder. Ein gutes aktuelles gebrauchtes Handy bekommst du bei Ebay. Für z.B. 10 Euro * 24 Monate sind schon 240 Euro. Dann sind bei manchen Verträgen die Gebühren höher als bei Prepaid. Für 2 Euro oder so im Monat kann man von D2->D2 oder D2->Festnetz ab der 2 Minute kostenlos Telefonieren. |
|||||
MaikG
Nutzer
14.04.2008, 20:29 Uhr [ - Direktlink - ] |
Thema: Interneteinwahl mit Modem und uralt PC
Brett: Andere Systeme Doch noch welche ohne DSL hier... Schonmal bei http://www.MoobiCent.de geguckt? Die haben eine echte Flat für 39 Euro über das Vodafone Netz. Für mich wäre der entscheidende Vorteil die nur 4 Monate Vertragslaufzeit. Man kann nicht abschätzen ob es in 1 Jahr echtes DSL gibt oder einen Anbieter der die selbe Leistung für die hälfte des Preises anbietet. Bei D2 und O2 hat man gleich 2 Jahre Laufzeit. Nach den Dokumenten die mir D2 geschickt hat sind da auch noch versteckte Nebenkosten. HSDPA wird auch unterstützt, bei verfügbarkeit und entsprechender Hardware. |
|||||
MaikG
Nutzer
14.04.2008, 10:09 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Offensichtlich nicht, da Du trotzdem versuchst, mittels CGFX in >dieses Array zu zeichnen bzw. dieses Array an CGFX/graphics.library-Funktionen >zu übergeben! Ich Zeichne mit CGX in einem Rastport und nicht in ein Array. >Doch, das geht. Es geht bei Dir nicht, weil Du nicht verstehen >willst, was man Dir sagt und Du auch keine Lust hast, die >Dokumentation zu verstehen. Ein Tip: Vergiß dabei "friend BitMap"... Wenn du meinen Code gelesen hättest, wüsstest du das ich friend BitMap überhaupt nicht angegeben habe. >Wieder ein Beispiel dafür, daß Du nicht zuhörst. Das Hook-Beispiel >funktioniert einwandfrei bei passendem Drucker bzw. Treiber. >Das kannst Du sowohl NoImag als auch mir glauben und es geht >sogar unter OS4 und über USB. Wenn es bei Dir nicht funktioniert, >machst DU etwas verkehrt bzw. Du hast halt keinen passenden >Drucker/Treiber. Ist das so schwer zu kapieren? Ist es so schwer zu verstehen das ich nichts auf gut glück Programmiere? Ich weiss nicht ob der aus dem C Übersetzte Code geht, ich weiss nicht ob dieser Code unter allen möglichen Umständen geht. Was ich weiss, wenn ich das so raussgebe und es Funktioniert nicht bekomme ich sinnlose Bugreports. Ala "Da steht OS3.5-OS4 in der Anleitung bei mir gehts aber nicht. >Du hast es ja nicht einmal versucht zu fragen... Ich bin pessimist. >Dann mach doch nicht so einen Aufstand darum, akzeptiere einfach, >daß manches nicht so möglich ist, wie Du es gern hättest und lerne, >anderen einfach mal zu vertrauen und zu verstehen, was sie Dir sagen. Ich mach kein Aufstand, ich beantworte nur was andere schreiben. Wenns nicht geht, gehts halt nicht. >Die Sache mit dem TP-Beispiel zeigt doch schon, daß Du einfach nicht >zuhörst. Dieses Beispiel zeigt, wie man eine handgestrickte BitMap >an TP durchreicht, damit dieses diese Pseudo-BitMap (nach Angabe des >Pixelformats!) ausdrucken kann, nichts anderes. Da steht nirgendwo, >daß eine derart aufbereitete BitMap dafür geeignet ist, daß Du >mittels CGFX und/oder den Funktionen der graphics.library darin >herumpfuschen kannst! Das Demo war klein genug damit ich es vollständig verstehen konnte. Es war nie die rede davon das ich das demo dahingehend ändern möchte. Ich habs nur probiert die art zu verwenden und es hat halt nicht funktioniert - na und hab ich halt Zeit verschwendet. >Gehe einfach mal davon aus, daß ein Hit nicht unbedingt von dem >Programm stammen muß, daß ihn scheinbar erzeugt. Klar das kommt vor, wenn man z.B. irgendein Library mit etwas füttert was nicht erlaubt ist. WW7 ist trotzdem sauber. >Wo liegt das Problem? Du kannst da ja wählen, aber Du solltest Dir >dann endlich mal klar darüber werden, auf welchem Weg Du die >Grafikdaten aufbereiten willst und Dir dann auch darüber klar >werden, wie das tatsächlich funktioniert. CGFX AGA kann durchaus >24Bit-BitMaps erzeugen und sie sogar (wenn auch ohne Dithering) >darstellen. Du solltest Dich aber darüber informieren, wie das >tatsächlich geht und nicht einfach davon ausgehen, daß Du keine >Fehler machst sondern nur die anderen und im Zweifel immer das OS. Ich will es so machen wie es jetzt ist. AllocBitmap, Zeichnen mit CGX, Text mit graphics. Das war schon immer so, ich zog nur alternativen in betracht. Bei CGXAGA kommt auch eine Bitmap zurück, alle Zeichenoperationen funktionieren. Aber es kommt ein rein schwarzes Bild aus dem Drucker. Klar kann es sein das ich was falsch mache, den Code habe ich gepostet. Bissher hatte daran keiner etwas auszusetzen. >Vorsicht! Eine CybergraphX-Funktion gibt es doch, an die solch ein >Pixel-Array übergeben werden kann/soll, nämlich WritePixelArray(). >Das habe ich auch in dem Demoprogramm zu meiner 24 Bit Version >des Bresenham so gemacht, um dieses selbstgestrickte Array dann auf >den RastPort eines Fensters zu bekommen. Ich arbeite ja mit einer Bitmap. |
|||||
MaikG
Nutzer
13.04.2008, 23:35 Uhr [ - Direktlink - ] |
Thema: Lame 3.93.1 und 68060 vs. PPC
Brett: Amiga, AmigaOS 4 >Ich sitze hier gerade am AMIGA und habe alle libs nochmal neu >geladen und kopiert. Ich habe genau die Libs, die du benutzt. >Auch die Lameversion ist haargenau die selbe und es brauchst >plötzlich 1Minute 50 Sekunden für die 256kbit testcase.wav mit >den genau den Befehlszeilen die du hier in den Thread geschrieben >hast und 1:56 für die 128er Variante. Hast du die: sndfile.library 163368 ----rwed 18-Okt-00 20:27:34 bei den neueren Versionen läd Lame mit dieser library. >Den Cyberpatcher habe ich auch schon mehrfach angeklickt. Bei mir ist der aus. Beim 2.x Doppelklick deaktiviert der sich. Der ist hauptsächlich für sachen die die FPU(<=040) benutzen, Imagine kann der gut beschleunigen. Akuelle Programme, speziell die für 68060 optimiert sind benutzen logischer weise keine Befehle die ein 060 nicht unterstützt. Da du AGA hast, mach das Testfile nochmal und zwar mit einer 2 Farb Workbench. Guck obs schneller wird. Kein Miami im hintergrund. Wenns geht die ausgaben von Lame >NIL: und Zeit per Stoppuhr nehmen. |
|||||
MaikG
Nutzer
13.04.2008, 23:22 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Wenn Du ohne die Hilfe von CGFX/P96 24Bit-Grafiken erzeugen willst, >mußt Du eigene Zeichenfunktionen schreiben, die z.B. innerhalb >eines simplen Arrays zu 3 Byte pro (gedachtem) Pixel arbeiten. Hab ich schon kapiert. >Wie Du mittels TurboPrint dieses Array als "getürkte" BitMap druckst, >zeigt Dir das TP-Beispiel. Ich weiss. >Du kannst diese beiden Arten, eine Grafik zu erzeugen, nicht munter >mischen. Entweder mit CGFX, dann aber auch mit den CGFX-Zeichenfunktionen, >oder Selbstbau, dann aber auch mit Selbstbau-Zeichenfunktionen. Will ich auch nicht. Der Selbstbau von Schrift ist aufwendig und langsam. Per CGX kann ich das Text von der gfx Library verwenden. CGXAGA wäre schonmal was, geht aber nicht. >Mittels CGFX kannst Du eine (ggf. unsichtbare) BitMap ganz normal >per AllocBitMap() anlegen und auch auf den Bildschirm bringen. >Ausdruck läuft ganz normal über PRD_DUMPRPORT, sowohl über >printer.device V44 als auch TP ab Version 4. Wenn der Ausdruck >einer solchen BitMap bei Dir nicht hinhaut, so machst Du etwas >verkehrt, ganz simpel. Solange ein Grafikkarte im System ist, gibt es auch keine Probleme. CGXAGA und P96 machen den Strich durch die Rechnung. >und Du mußt evtl. beim Druck zwischen TP und >printer.device V44 unterscheiden. Punkt. Auch kein Problem, aber ich kann nicht testen ob diese Hook Funktion irgendeinen vorteil bietet. Wer weiss vielleicht kommt bei AGA und OS4 dann auch nur müll aus dem Drucker wie jetzt. >Wenn Du (ausnahmsweise mal) ganz lieb bittest, findet sich >vielleicht jemand, der einen LIDIL-Treiber für Deinen 930er >und OS3.5+ baut. Ich denke mal das ist ein risesen Aufwand und einer der den Drucker nicht hat wird sich das kaum antun. >Mensch Maik, hör doch endlich einmal damit auf, Deinen Kopf >durchsetzen zu wollen und nimm die Ratschläge an, die Dir gegeben >werden. Wo ist das Problem dabei wenn ich manches aufgrund des Aufwands bzw. da ich es selbst nicht testen kann einfach nicht machen möchte? >Zusätzlich solltest Du damit aufhören, Dein (in meinen >Augen ziemlich verkorkstes) System als Maß aller Dinge >hinzustellen. Mein System läuft, stürzt nicht ab und macht keine Hits. Solange ich keine Buggy Soft Installiere. >Das Drucken per printer.device V44 geht bestens, >wenn man einen passenden Drucker hat Hab ich aber nicht. Auch beim Drucker möchte ich gerne alleine meine wahl treffen. >und Hits schmeißen die Treiber >auch eher selten (meist ist es die druckende Anwendung, die da >fehlerhaft ist). WW druckt mit Turboprint, als auch mit anderen WB Treibern ohne Fehler. Wenn der Treiber auch nur selten Hits von sich gibt ist der Fehlerhaft. Ich vermeide es sowas in meinem System zu haben. >Also, entscheide Dich für einen Weg (CGFX oder selbstgebastelte >BitMap) und dann laß Dir dabei helfen, auf diesem Weg Ergebnisse >zu bekommen, statt ständig herumzulamentieren und nur zu schreiben >"das geht nicht". Bei allen anderen hier geht es nämlich, auf >beiden Wegen, nur nicht bunt gemischt. Nicht mit meinem Drucker bzw. weise wurde gar nicht das getestet was ich beschrieben habe. |
|||||
MaikG
Nutzer
13.04.2008, 18:33 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >BytesPerRow = 3 * Width. Warum wohl? Denk mal darüber nach, was das zu bedeuten hat... Du brauchst 3 Bytes bei RGB (RGB24) und die anzahl der Pixel in einer Reihe nimmst du damit mal. Bei CGX stehen da aber ganz andere Werte drin, deswegen schreibt das Demo explizit 3*Width da rein. Mache ich das in meinen Programm so, stürzt es ab weil CGX auf seinen Wert angewiesen ist um auf dieser Bitmap zu Zeichnen. Würde ich nicht Zeichnen müssen, könnte ich dafür dann drucken... [ Dieser Beitrag wurde von MaikG am 13.04.2008 um 18:35 Uhr geändert. ] |
|||||
MaikG
Nutzer
13.04.2008, 17:32 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Hm, das kann ich mir nun beim besten Willen nicht vorstellen. >TP müßte sich dazu in AllocBitMap() einhängen, aber wozu sollte das >gut sein? CGFX-BitMaps sind an den BitMap-Attributen einwandfrei >erkennbar (Pixelformat beispielsweise), es gibt gar keinen >sinnvollen Grund, da irgend etwas in BytesPerRow einzucodieren. Ich meine das beispiel aus dem TP-Dev. Nachdem Allocmem war schreibt es die BytesPerRow nach 3*widht. Nach dem Kommentaren tut es dies vermutlich in jedem seiner Programme. >Ich schätze, da schreibt Dein Programm in Bereiche, wo es nichts zu >suchen hat bzw. es baut die BitMap nicht korrekt auf. Der Source steht doch da, die Bitmap wird doch vom System aufgebaut. Würde ich in Fremde bereiche schreiben, dann hätte es einen Hit gegeben, spätestens hätte sich aber OS4 gemeldet. >Sollte mit dem 9xx-Treiber von OS3.5+ funktionieren (970, glaube ich). >Es gibt aber Unterschiede, Cx hatten die Teile glaube ich als >"Anhang" der Typenbezeichnung, die anderen haben kein HP-PCL als >"Sprache". Ich habe sowohl die OS3.5+ als auch die aus dem Aminet durch. Ausser das die Seite eingezogen wird und einige Hits von den Treibern ist nichts passiert. Turboprint war deaktiv und als Testprogramm habe ich Wordworth genommen. >Ok, dann fang doch erst einmal mit der CGFX-Unterstützung an und >bring das zum Laufen. Danach, also wenn das wenigstens prinzipiell >tut, mach mit der Farbreduzierung & Skalierung weiter. Wenn das >dann einwandfrei funktioniert, Es Funktioniert alles fehlerfrei, bis auf AGA und P96. Also das Drucken, die darstellung geht unter AGA+P96(letzteres bis auf Pens). [ Dieser Beitrag wurde von MaikG am 13.04.2008 um 17:33 Uhr geändert. ] |
|||||
MaikG
Nutzer
13.04.2008, 13:36 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Dann erklär mir doch mal, wieso TP hier auf einem reinen P96-System >(OS4) problemlos Grafiken druckt. Mit dem Graphic Publischer druckt TP hier auch. >Das geht auch ohne Mucken über die Hardcopy-Funktion, welche >letztendlich eine Bitmap druckt, die per AllocBitMap angelegt >wurde. TP überschreibt einen wert der von AllocBitmap angelegt wurde. Bytes per Row, der beträgt unter CGX 41 oder 43. Was natürlich falsch ist, aber vermutlich (u.a.) für die erkennung bei TP erforderlich ist. >Letztendlich bleibt für mich da nur der Schluß, daß Du irgendwas >verkehrt machst. Das will ich nicht ausschließen. >Welches Modell ist das? Ein 930er. >Und nochmal zum Problem "CGFX AGA": Wie kommst Du darauf, daß das >nicht funktionieren würde? Du kannst auch unter CGFX AGA problemlos >24Bit-Bitmaps mittels AllocBitMap anlegen, sie sind nur nicht ohne >weiteres darstellbar. Ja, das dachte ich auch. Deswegen wollte ich erst wenigstens CGXAGA unterstützen. Ebend mit der Farbreduzierung+Scalierung. Was aber nur für die darstellung ist, für das Drucken wird exakt der selbe code verwendet. code:printrp&=AllocVec&(RastPort_sizeof%, MEMF_CLEAR&) IF printrp& THEN InitRastPort printrp& bm&=NULL& REM BMF_MINPLANES& (PIXFMT_ARGB32&<<24) bm& = AllocBitMap&(pwidth%+10, pheight%+10, 24,BMF_MINPLANES& OR BMF_SPECIALFMT& OR (PIXFMT_RGB24&<<24), NULL&) REM +10 sicherheitsraum IF bm& THEN POKEL(printrp&+RastPortBitMap%),bm& ... malen etc. Drucken: FUNCTION dumpRP%(BYVAL rp&, BYVAL cm&, BYVAL modeID&, x%,y%,x1%,y1%) STATIC pmp&, pio&, sigfr&, r%, TPExtIODRP& dumpRP% = -1 'generic failure ' Create private messageport pmp& = CreateMsgPort&() ' Allocate Printer IO block pio& = CreateIORequest&(pmp&, IODRPReq_sizeof%) ' Open the printer.device r% = OpenDevice&(SADD("printer.device" + CHR$(0)), 0, pio&, 0) IF r% = 0 THEN ' Fill in the IODRPRequest POKEW pio& + IODRPReqio_Command%, PRD_DUMPRPORT& POKEL pio& + io_RastPort%, rp& POKEL pio& + io_ColorMap%, cm& REM ohne cm& Hit vom Printer.device POKEL pio& + io_Modes%, modeID& POKEW pio& + io_SrcX%, x% POKEW pio& + io_SrcY%, y% POKEW pio& + io_SrcWidth%, x1% POKEW pio& + io_SrcHeight%, y1% POKEL pio& + io_DestCols%, 4000 POKEL pio& + io_DestRows%, 4000 POKEW pio& + io_Special%, SPECIAL_MILROWS& OR SPECIAL_MILCOLS& SendIO pio& sigfr& = xWait&((1& << PEEKB(pmp& + mp_SigBit))) IF sigfr& AND (1& << PEEKB(pmp& + mp_SigBit%)) THEN ' printer is either ready or an error has occurred WHILE GetMsg&(pmp&) ' Remove any messages WEND END IF ' Return error code (in this case we count user-abort as an error) dumpRP% = PEEKB(pio& + IODRPReqio_Error%) CloseDevice pio& ELSE dumpRP% = r% END IF DeleteIORequest& pio& DeleteMsgPort pmp& END FUNCTION |
|||||
MaikG
Nutzer
13.04.2008, 09:49 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Siehe mein Beispielcode. Wo ist da das Problem? Wenn Du etwas nicht >verstanden hast, dann frag doch einfach! Also wenn ich das lese: void setpixel(struct raster_bitmap *bm, unsigned int x, unsigned int y) { if (x > 0 && x < bm->width && y > 0 && y < bm->width) { bm->data[bm->width * y + x] = bm->color; } } Siehts so aus alswenn du einen Punkt mit einer Farbe in eine Bitmap schreibst? >BlitBitmap geht natürlich nicht damit, weil es ein Pixelarray und >keine AmigaOS BitMap-Struktur ist. Okay, also keine Vorschau. Um das ganze nun aber drucken zu können müsste ich das Pixelarray auf einen Rastport bringen. Was wiederum eine 24 Bit Bitmap braucht und aufgrund der größe ist es kein echter Rastport. Da bin ich wieder an der Stelle an der ich jetzt bin, so kann ich das nur mit CGX&Graka+Turboprint drucken. >Und wenn Du das auch unbedingt mit AGA funktionieren soll (also pures AmigaOS 3.x ohne >Cybergraphx), >dann musst Du wie schon richtig gesagt wurde selbst eine >Remaping-Funktion schreiben. Ja, der Remaping und Scaling code war sehr einfach zu schreiben. Für die Vorschau ist das okay, fürs Drucken brauch ich 16,7 Mio Farben. >Aber vielleicht solltest Du Dir erstmal darüber klar werden, was Du >überhaupt willst, d.h. was soll Dein Programm können? Es kann schon alles was es soll, ausser Drucken auf AGA/P96. >Welche Hard/Software soll Mindestvoraussetzung sein? 68020, OS2 oder 3, einige MB Fastmem. Software ist halt das Problem optimal wäre wenn cgx und TP gar nicht zwangsweise benötigt werden. |
|||||
MaikG
Nutzer
13.04.2008, 00:22 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Du hast doch gefragt, wie Du Kreise und Linien OHNE die graphcs.library bzw. >cybergraphx zeichnen kannst. Ja, ohne graphics. Weil das Pen basierend und so nutzlos ist. >4.) Das Pixel-Array bekomme ich dann mit Hilfe der Cybergraphx-Funktion >WirtePixelArray() in einen RastPort. Na aber wenn du Cybergraphics benutzt kannst du das nicht mit Turboprint unter CGX AGA Drucken. Ist prinzipell das selbe wie jetzt, wo CGX geht geht auch graphics.library/Text. >Das letzte echte Update war 7.0 oder 7.1 (vielleicht weiß das >jemand noch genau). Das war vor WB 3.5. Danach gab es nur noch >neue Treiber, kein Update des printer.device. Ja, mag sein. Die Oberfläche ist auch sehr antiquiert geblieben, für den Preis (TP7.1 -> 7.6) hätte ich mehr erwartet. Zitat: >Mit der oben angegebenen Funktion von TP kannst Du aber immerhin >24Bit Farbtiefe auch ohne CGFX drucken (ja, das funktioniert!), Ja, wenn man die BM selbst macht. >Nach den Entwicklerunterlagen geht es auch mit CGFX-Bitmaps und >bei 7.x sollte es auch mit P96-Bitmaps gehen. Weder P96 noch AGA druckt hier, wenn man mit AllocBitmap arbeietet. Also ob mit der norm. Dump Funktion noch mit der Turboprint eigenen. >Hast Du Turboprint deaktiviert? Ja. >Hast Du in den Printer-Preferences einen passenden Druckertreiber >eingestellt? Ähm, einige die passen könnten. >Bei mir funktioniert es. Wenn es bei Dir nicht funktioniert, >liegt es an Deinem System. Ein direkten Treiber für mein Modell gibts nicht, ausser in TP. > Zitat: > Basic bleibt hängen. > BASIC code: > DRPMsg&=PEEKL(DRPMsg2&) > x&=PEEKL(DRPMsg&+DRP_x%) > y&=PEEKL(DRPMsg&+DRP_y%) > myWidht&=PEEKL(DRPMsg&+DRP_width%) > myHeight&=PEEKL(DRPMsg&+DRP_height%) > buffer&=PEEKL(DRPMsg&+DRP_buf%) >ist falsch. Kannst du das Prezisieren? Die 2. MSG lesen habe ich rausgenommen. >Du kannst Deinen Text auch in einen Rastport im Chipram schreiben >(wenn es sein muss, Buchstabe für Buchstabe) und dann das Ergebnis >pixelweise in Deine Bitmap (oder Puffer) im Fastram übertragen. >Das ist nicht effizient, wird aber funktionieren. Sowas hab ich mir auch schon gedacht. Zu dem Problem gehört dann noch das man nicht per WriteRGBPixel sondern per POKE die Bitmap bearbeiten muss. Wenn ich wiederrum die BM mit AllocVec hole, könnte ich mir jetzt schon denken das die Preview ausfällt weil BlitBitmap nicht damit funktioniert o.ä. Spätestens aber machen Bilder die ich mit den Datatype brauche bestimmt einen Strich durch die Rechnung. |
|||||
MaikG
Nutzer
12.04.2008, 17:52 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Sorry, wenn ich das jetzt sage, aber: Wir helfen Dir hier gerne, >aber alles vorkauen können wir Dir auch nicht. Wenn Du was mit >Fonts machen willst, und am OS vorbeiprogrammierst, musst Du dafür >eben auch selbst eine Lösung finden. Gehen tut das sicher, nur der >Aufwand ist eben entsprechend hoch. Wie kommst du darauf das ich am System vorbei Programmiere? Ich benutze Standard Systemfunktionen. Das Allocbitmap evtl. ohne CGX z.B. nicht das richtige Pixelformat nimmt oder was es immer macht ist ja nicht mein Fehler. Wenn ich direkt in den Speicher schreibe, sagen wir mit einer WritePixelRGB variante - dann würde ich das eher am OS vorbeiprogrammierem nennen. |
|||||
MaikG
Nutzer
12.04.2008, 14:32 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Es steht nicht direkt im Klartext drin (wie sollte auch? Zu der >Zeit des printer.device V44 war TPs Schicksal schon besiegelt), Mir war so als wäre es nicht so lage her als ich TP7.6 gekauft habe. OS3.5 und ich glaub sogar 3.9 liegt weiter zurück. >Um eine Konvertierung für die Darstellung unter AGA/CGFX sowie >eigene Zeichenfunktionen wirst Du nicht herumkommen, >wenn Du Bitmaps per Hand strickst und darin zeichnen willst, >noch dazu, wenn Du CGFX nicht explizit voraussetzen möchtest. Ich denke CGFX vorrauszusetzten ist aktzeptabel. >Mit der oben angegebenen Funktion von TP kannst Du aber immerhin >24Bit Farbtiefe auch ohne CGFX drucken (ja, das funktioniert!), Ja, wenn man die BM selbst macht. >mit CGFX/P96 gibt Dir auch printer.device V44 die 24Bit oder Du >kannst die Daten ggf. über den Hook liefern (wie in dem Beispiel aus dem NDK3.9 gezeigt, >mußt nur die Version des printer.device überprüfen und dementsprechend zwei Ausgabefunktionen nutzen). >Ob das mit Deinem BASIC-Äquivalent des NDK-Beispiels funktioniert >kann sicher jemand anderes testen, u.A. ich und NoImag kann das >sicher auch. Ich bezweifle das es geht, denn das NDK Beispiel startet und beendet sich sofort. Basic bleibt hängen. >Auf lange Sicht solltest Du übrigens auf HP-Drucker umsteigen, >das sind die einzigen, für die man noch erschöpfend Informationen >ohne irgendwelche lustigen NDAs bekommt und somit Treiber bauen >kann. HP sind auch die besten Drucker nach meiner erfahrung, Trotzdem ist Treiber schreiben, für mich zu hoch. Zumal TP sonst mit jedem Programm Problemlos funktioniert. Und da es fürs >OS3.5 System keine aktuellen funktionierenden/sauberen Treiber gibt ists genauso sinnlos darauf zu setzen. >Die Zeichenfunktionen selbst sind so oder so Fleißarbeit", wobei >Dir MadDog nicht unerheblich behilflich war, wie ich gesehen habe. Für normale Zeichenfunktionen ist das gut aber Fonts gehen damit nicht. TTF wurde mal erwähnt, aber ich möchte meine Amiga Fonts. |
|||||
MaikG
Nutzer
12.04.2008, 09:57 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Er sollte mal auf der irseesoft-Seite schauen, da gibts Doku zu TP. >Da wird ihm dann hoffentlich klar, daß TurboPrint DUMPRPORTTAGS als >Kommando für das modifizierte printer.device nicht kennt. Ich habe mir die develloper dateien runtergeladen. Konnte das daraus aber nicht entnehmen. Ist es nicht dumm sowas nicht zu unterstützen? >Damit kann man das Format der zu druckenden Bitmap explizit >mitteilen, was für seine händisch gebaute Bitmap das Richtige >sein dürfte. Nachteil ist allerdings, daß sein Prog dann nur mit >TP drucken kann, dessen Weiterentwicklung für Amiga ja, wie es >aussieht, gestorben ist. Muss er dann wissen, ob er auf eine >tote Druckertreiber-Seitenlinie setzen oder doch lieber CGFX/P96 >bzw. OS3.5+ voraussetzen will. Ja, die Funktion macht mit TPFMT_RGB24% OR TPFMT_CyberGraphX% das selbe wie die normale Funktion. Problem ist, die geht nur wenn CyberGraphX auch vorhanden ist. Der Verursacher könnte aber auch AllocBitmap sein. Fertige ich eine Bitmap per Hand an kann ich mit den CGX Funktionen nicht darauf zeichnen. Text geht auch nicht. |
|||||
MaikG
Nutzer
10.04.2008, 23:46 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Turboprint habe ich dafür deaktiviert. Wenn Turboprint läuft, >dann hast Du ein anderes printer.device. Ich denke TP ist das meistgenutzte, denn die OS3.9 Treiber sind teilweise buggy oder es gibt keine für halbwegs aktuelle Drucker. Für meinen gibts keinen anderen Treiber als Turboprint, habe alle Treiber die kompatibel sein könnten durch. TP sollte eigentlich zu >=OS3.5 kompatibel sein. Die intenen funktionen von Turboprint zu nutzen bringt leider auch nur das was man mit dem Standard DumpRP kommando erreichen kann. |
|||||
MaikG
Nutzer
10.04.2008, 23:40 Uhr [ - Direktlink - ] |
Thema: Lame 3.93.1 und 68060 vs. PPC
Brett: Amiga, AmigaOS 4 >Ach weiß ich auch nicht. Wüßte nicht wo ich noch dran rumstellen >sollte. Vielleicht stimmt auch was mit deinem system nicht, weil es >abnormal schnell ist. Mh, also ich hab fmath040 und BlaceWCP installiert. Das ist das einzige was mehr geschwindigkeit bringt. höchstens ersteres könnte Lame beeinflussen. Fmath ist teilweise erheblich schneller als einige Funktionen von den OS3.9 equivalenten. Unter AGA wirst du ja nicht arbeiten? Das könnte auch die Geschwindigkeit beeinträchtigen. |
|||||
MaikG
Nutzer
10.04.2008, 07:32 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Bei mir läuft das compilierte Programm aus dem NDK, wenn ich es >aus der Shell starte. Der Hook funktioniert also. Bei mir definitiv nicht. Benutzt du das OS3.9 eigene printer.device oder Turboprint? >Ich schlage vor, dass Du als erstes das Beispiel 1:1 nach BASIC >übersetzt, bevor Du Änderungen vornimmst. Mir ist nämlich einiges >an Deinem Quellcode nicht klar. Ausser SendIO statt DoIO hab ich schon alles gleich gemacht. Ich könnte noch das DOIO einsetzen, aber da das Beispiel in C eh nicht geht wird das nichts bringen. >Hast Du schon überprüft, ob Du überhaupt bis SendIO() kommst? Ja, ist nichts kritisches davor. Also bissher kam ich zur folgender erkenntniss: 24 Bit Drucken -unter CGX+Turboprint kein Problem. -unter CGXAGA+Turboprint nicht möglich (absturz printer.device) macht man die Bitmap per AllocVec selbst geht das, allerdings kann man dann die CGX Funktionen sowie Text nicht benutzen -unter OS4+Turboprint kommt nur Müll aus dem Drucker da P96 wohl die Bitmap so anlegt das TP diese nicht identifizieren kann. Rein Theoretisch könnte es per AllocVec gehen(ohne CGX). Ohne Turboprint könnte es jetzt sogar noch sein das gar nichts geht. [ Dieser Beitrag wurde von MaikG am 10.04.2008 um 09:01 Uhr geändert. ] |
|||||
MaikG
Nutzer
08.04.2008, 23:31 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Hast Du es ausprobiert? Ja. Tja, ich hab schon überlegt ein Teil des Druckens in C zu legen. Dafür wollte ich mal das Beispiel vom NDK3.9 Testen. Und was passiert - nix. Also wenn das bereits fertig Compilierte Programm in C nicht läuft brauch man nicht versuchen das in Basic umzusetzten... >So steht es in den Includes. Bei Basic wird immer der komplette Wert und nicht Rechenoperationen mit Kontanten aus anderen Includes. |
|||||
MaikG
Nutzer
08.04.2008, 00:16 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >In diesem Beispiel wird BYVAL (was bedeutet dies?) verwendet, >in Deinem Quellcode dagegen nicht. Das die Variable als Wert übergeben wird, daher vom unterprogramm nicht geändert werden kann. Ist auch schneller, hat aber nichts zu bedeuten. >Verwendet PRINT stdio oder Text()? Im ersten Fall dürfte es nicht >funktionieren. Ein Fenster von MaxonBasic. Aber wo du es sagst, wenn die routine direkt vom System aufgerufen wird... Edit: Macht auch keinen unterschied. >Ich habe die Werte überprüft: Die hab ich heute mittag korregiert. >Wie kommst Du auf Weiss nicht mehr, hab ich aber nicht verwendet, >stimmt, habe ich nicht nachgerechnet. Es sollte 2 mehr sein als >io_Special%. Ist es. Stimmt das mit TAG_USER+0x60000 ? Kam mir etwas komisch vor. [ Dieser Beitrag wurde von MaikG am 08.04.2008 um 00:20 Uhr geändert. ] |
|||||
MaikG
Nutzer
07.04.2008, 23:39 Uhr [ - Direktlink - ] |
Thema: Lame 3.93.1 und 68060 vs. PPC
Brett: Amiga, AmigaOS 4 >Anwort kommt etwas verspätet aber ja ich habe genau die selbe Version. Dann stimmt definitiv was an deinem System nicht. Meine werte stammen ja noch von der BPPC als der PPC von der kaputt war konnte ich nicht mehr anders encodieren. |
|||||
MaikG
Nutzer
07.04.2008, 11:45 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung @Holger das muss so. Ist dem NDK3.9 C-beispiel entsprechend: ior->io_Command = PRD_DUMPRPORTTAGS; ior->io_Flags = 0; ior->io_Error = 0; ior->io_RastPort = NULL; ior->io_ColorMap = NULL; ior->io_Modes = 0; ior->io_SrcX = 0; ior->io_SrcY = 0; ior->io_SrcWidth = 256; ior->io_SrcHeight = 256; ior->io_DestCols = 256; ior->io_DestRows = 256; ior->io_Special = 0; ior->io_TagList = tags; |
|||||
MaikG
Nutzer
07.04.2008, 10:26 Uhr [ - Direktlink - ] |
Thema: Lame 3.93.1 und 68060 vs. PPC
Brett: Amiga, AmigaOS 4 Wir reden hier von echten Amigas... @gerograph >Schon komisch oder ?? Bei OS4 ist manches in der Geschwindigkeit eigenartig. Aber 0.7x für 603e@200MHZ ist schon brauchbar. Die WOS emu scheint auch recht stabiel solange man nur das startet was "Systemkonform" ist. |
|||||
MaikG
Nutzer
06.04.2008, 23:48 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Wird irgendwas zur Hook-Funktion, insbesondere zu den erforderlichen >Parametern und deren Reihenfolge, gesagt? Ja, ist ein Beispiel dabei: Function meineHookFunktion&(BYVAL Hook&, BYVAL o&, BYVAL msg&) ... End function Dim h(Hook_sizeof2) INITHOOK VARPTR(h(0)), VARPTRS(meineHookFunktion&) res&=CallHookPkt&(VARPTR(h(0)),SADD("Hallo"+CHR$(0)),0) >Wenn obige Frage nein lautet, hast Du die Reihenfolge hook, object, >message verwendet? Ja. Wie gesagt ich tippe eher darauf das ich die Includes falsch gemacht habe. Denn selbst mit falschen parametern etc. sollte die function zumindest aufgerufen werden. Bzw. sollte wenigstens ein Enforcer Hit kommen. Aber es passiert nichts programm bleibt stehen. |
|||||
MaikG
Nutzer
06.04.2008, 20:13 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Was sagt denn das MaxonBASIC-Handbuch zu INITHOOK? INITHOOK Hook_Adresse, Funktions_Adresse Dieser Befehl initalisiert einen "Hook", damit er vom Betriebssystem aufgerufen werden kann. usw. Das mit dem anderen 2 Parametern hab ich jetzt auch probiert, erfolglos. >Wie das ganze in C aussehen muss, findest Du ausführlich in hook.h >beschrieben. Leider ist lesen was anderes als verstehen ;-) [ Dieser Beitrag wurde von MaikG am 06.04.2008 um 20:21 Uhr geändert. ] |
|||||
MaikG
Nutzer
06.04.2008, 14:48 Uhr [ - Direktlink - ] |
Thema: UMTS USB-Stick
Brett: Amiga, AmigaOS 4 Kann man einen UMTS Stick am Amiga betreiben? Ich glaubs zwar nicht aber ich frag mal einfach. Diese Router sind tierisch teuer, dafür kann ich einen extra PC kaufen und den den Stick reinstecken. |
|||||
MaikG
Nutzer
06.04.2008, 14:44 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Wo hast Du INITHOOK definiert? >Die Verwendung von Hooks ist halb lowlevel und könnte in BASIC >Probleme machen. Die Parameter werden über Register an die >Hook-Funktion übergeben. Bei Compilern, die dies nicht unterstützen >ist Assembler erforderlich. Ist eine MaxonBasic Funktion. >Mir sind zwei Dinge aufgefallen: >1. Deine Hook-Funktion Readpixels& hat nur einen Parameter >(hook und object fehlen) Wie gesagt ich hab keinen schimmer von Hooks, ich kann hook und object dazusetzen. Hab aber keine ahnung wozu ich die verwenden sollte oder ob das hilft. Da die Funktion erst gar nicht aufgerufen wird, scheint es auch ein anderes Problem zu sein. >2. Du übergibst bei INITHOOK keine userdata. Das scheint bei der Funktion nicht vorgesehen, es macht meine Funktion Readpixels für das Betriebssystem zugänglich und kümmert sich auch um die Parameter. |
|||||
MaikG
Nutzer
05.04.2008, 21:56 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung Also ich wollte das mit der neuen OS3.5 Funktionalität mal probieren. Passiert aber nichts, die Function wird nicht aufgerufen. code:'$INCLUDE dos.bh '$INCLUDE exec.bh '$INCLUDE graphics.bh '$INCLUDE intuition.bh '$INCLUDE Printer.bc '$INCLUDE utility.bh LIBRARY OPEN "dos.library",37 LIBRARY OPEN "exec.library",37 LIBRARY OPEN "graphics.library",39 LIBRARY OPEN "intuition.library",37 LIBRARY OPEN "utility.library" DEFINT a-z REM $VARCHECKS DIM SHARED temptag&(20) DIM SHARED h&(Hook_sizeof%2) DECLARE FUNCTION Readpixels& FUNCTION Readpixels&(DRPMsg2&) STATIC x&,y&, myWidht&, myHeight&, r&,buffer& STATIC DRPMsg& PRINT "reached" DRPMsg&=PEEKL(DRPMsg2&) x&=PEEKL(DRPMsg&+DRP_x%) y&=PEEKL(DRPMsg&+DRP_y%) myWidht&=PEEKL(DRPMsg&+DRP_width%) myHeight&=PEEKL(DRPMsg&+DRP_height%) buffer&=PEEKL(DRPMsg&+DRP_buf%) r&=y&<<16 FOR x&=0 TO myWidht&-1 POKEL buffer&, (r& OR x&) ^&h00ffffff NEXT x& Readpixels&=TRUE& END FUNCTION FUNCTION dumpRP%(BYVAL rp&, BYVAL cm&, BYVAL modeID&, x%,y%,x1%,y1%) STATIC pmp&, pio&, sigfr&, r% dumpRP% = -1 pmp& = CreateMsgPort&() pio& = CreateIORequest&(pmp&, IODRPTagsReq_sizeof%) r% = OpenDevice&(SADD("printer.device" + CHR$(0)), 0, pio&, 0) IF r% = 0 THEN POKEW pio& + IODRPReqio_Command%, PRD_DUMPRPORTTAGS& POKEL pio& + io_RastPort%, NULL& POKEL pio& + io_ColorMap%, NULL& POKEL pio& + io_Modes%, NULL& POKEW pio& + io_SrcX%, 0 POKEW pio& + io_SrcY%, 0 POKEW pio& + io_SrcWidth%, 256 POKEW pio& + io_SrcHeight%, 256 POKEL pio& + io_DestCols%, 256 POKEL pio& + io_DestRows%, 256 POKEW pio& + io_Special%, SPECIAL_MILROWS& OR SPECIAL_MILCOLS& POKEL pio& + io_Taglist%, VARPTR(temptag&(0)) SendIO pio& sigfr& = xWait&((1& << PEEKB(pmp& + mp_SigBit))) IF sigfr& AND (1& << PEEKB(pmp& + mp_SigBit%)) THEN ' printer is either ready or an error has occurred WHILE GetMsg&(pmp&) WEND END IF dumpRP% = PEEKB(pio& + IODRPReqio_Error%) CloseDevice pio& ELSE dumpRP% = r% END IF DeleteIORequest& pio& DeleteMsgPort pmp& END FUNCTION INITHOOK VARPTR(h&(0)), VARPTRS(Readpixels&) TAGLIST VARPTR(temptag&(0)), _ DRPA_SourceHook&, VARPTR(h&(0)) ,_ DRPA_AspectX&, 1, _ DRPA_AspectY&, 1, _ TAG_END& junk&=dumpRP%(rp&, cm&, modeID&, x%,y%,x1%,y1%) Vielleicht hab ich auch die Include ergänzungen falsch gemacht code:' >=OS3.5 stuff CONST PRD_RESETPREFS& = &hD& CONST PRD_LOADPREFS& = &hE& CONST PRD_USEPREFS& = &hF& CONST PRD_SAVEPREFS&=&h10& CONST PRD_READPREFS&=&h11& CONST PRD_WRITEPREFS&=&h12& CONST PRD_EDITPREFS&=&h13& CONST PRD_SETERRHOOK&=&h14& CONST PRD_DUMPRPORTTAGS&=&h15& 'IODRPTagsReq fields CONST io_Taglist% =62 CONST IODRPTagsReq_sizeof%=66 'DRPSourceMsg fields CONST DRP_x% = 0 CONST DRP_y% = 4 CONST DRP_width% = 8 CONST DRP_height% = 16 CONST DRP_buf% = 20 CONST DRPSourceMsg_sizeof%=78 'fill this buffer with 0x00RRGGBB pixels CONST DRPA_Dummy&=&h80060000 CONST DRPA_ICCProfile&=&h80060001& CONST DRPA_ICCName&=&h80060002& CONST DRPA_NoColCorrect&=&h80060003& CONST DRPA_SourceHook&=&h80060004& CONST DRPA_AspectX&=&h80060005& CONST DRPA_AspectY&=&h80060006& |
|||||
MaikG
Nutzer
05.04.2008, 11:38 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Hier mal der Ausschnitt aus de, Code, wo das Pixel-Array in den >RastPort des Fensters mittels WritePixelArray() eingefügt wird. Ah, danke. Jetzt weiss ich was falsch war, ich hab PixelsPerRow statt BytesPerRow angegeben. |
|||||
MaikG
Nutzer
05.04.2008, 00:09 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Dies gilt, wenn Du eine echte Bitmap drucken möchtest. Hab ich zwar auch gelesen, nur finde ich keine Funktion der ich eine Bitmap übergeben könnte. > Benutzt man das Tag DRPA_SourceHook so braucht weder ein RastPort noch eine > Colormap angegeben werden. >Dies kannst Du benutzen, wenn Du ein ARGB-Array drucken möchtest. Ich weiss nicht was ein Hook ist *duck und wegrenn ARGB-Arrays bekomme ich nur Zeilenweise hin, mehr als eine Zeile endete immer in grafikmüll. |
|||||
MaikG
Nutzer
04.04.2008, 20:01 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Vorschau machst du mit WritePixelArray, falls der User einen Hi/True >Color Screen auf hat. Hab ich per Blitbitmap auf Hi/Truecolor, weil ich eh noch scalieren muss. >Anderen falls musst du selbst re-mappen, dafür gibts keine OS Routine. Ja, hab ich. Momentan mit WritePixel. >Wenn du jetzt erzählst, du malst Pen-basierend, dann macht die ganze >Diskussion von wegen True/Hi Color hier gar keinen Sinn. Pen Basierend male ich nur für die Preview auf der Workbench unter 8 Bit. Den Text mache ich auf der nicht sichtbaren Bitmap mit Pens, da dort nicht tausende farben nötig sind. Alles andere mit writepixel. Datatypes per Blitbitmap, ausser für 8 Bit Bilder geht das nicht. >Die Workbenchtiefe herausfinden solltest du GetBitMapAttr(*bitmap, >BMA_DEPTH) benutzen, wie so ziemlich bei allen Attributen, die du >von einer Bitmap wissen willst. Danke. Zitat: Datatypes sind auch so eine Sache, wenn man 8 Bit oder weniger hat muss die Palette ja dem Screen angepasst werden. Kein Screen -> keine Farbneuberechnung. >Kein Screen -> warum zum Teufel eine Farbneuberechnung machen? Das bild im Speicher hat 24 Bit, die Workbench 8 Bit oder weniger. Um das Bild darzustellen muss es auf die Farben der 8 Bit Workbench umgerechnet werden. >Ich dachte, du willst ein beleibiges Bild erstellen und drucken, >unabhängig von der gerade verwendeten Farbtiefe der Workbench und >den Fähigkeiten der Grafikkarte. Ja, das wäre Optimal. Bissher scheint das 24 Bit drucken mit meinen derzeitigen kenntnissen unter AGA nicht möglich. |
|||||
MaikG
Nutzer
04.04.2008, 18:21 Uhr [ - Direktlink - ] |
Thema: Kreis Zeichnen ohne graphics.library
Brett: Programmierung >Die "Bitmap" einfach als ARGB PixelArray (also simpler, formloser >Speicherblock) mit AllocMem(höhe*breite*4byte,MEMF_ANY) allocieren >und alles selbst hineinzeichnen. Grade bei P96 oder AGA wäre das wohl das beste. Ich müsste dann aber auch irgendwie die Bitmap flags eintragen, weil ich muss das ja Blitten(vorschau). Dann hab ich noch ein anderes Problem. Ich hab jetzt ein paar farbreduzierungen geschrieben, um auch eine vorschau auf AGA zu ermöglichen. Nun bekomme ich die Workbenchtiefe nicht raus. 1-8 Bit geht aber für alles darüber wird 8 Bit angegeben. So kann ich nicht unterscheiden wann welche Funktion verwendet werden muss. Datatypes sind auch so eine Sache, wenn man 8 Bit oder weniger hat muss die Palette ja dem Screen angepasst werden. Kein Screen -> keine Farbneuberechnung. Von Drucken noch gar nicht zu reden, sofern die Workbench in PAL ist (auch wenn cgx vorhanden) kommt aus dem Drucker ein schwarzes Bild. Da kann das printer.device scheinbar nichtmehr feststellen das es sich um 24 Bit Daten handelt. |
|||||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |