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

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

1 2 3 -4- 5 Ergebnisse der Suche: 148 Treffer (30 pro Seite)
malte2   Nutzer

12.09.2006, 00:41 Uhr

[ - Direktlink - ]
Thema: jpeg's sichern unter OS4?
Brett: Programmierung

#include <intuition/intuition.h>
#include <datatypes/datatypesclass.h>
#include <datatypes/pictureclass.h>

#include <proto/datatypes.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/graphics.h>
#include <proto/intuition.h>

int main(int argc, char **argv)
{
struct Screen *scr;
struct BitMap *bm = NULL;
Object *dto;

if (argc < 2) return 0;

if ((scr = LockPubScreen(NULL)))
{
if ((bm = AllocBitMap(
GetBitMapAttr(scr->RastPort.BitMap, BMA_WIDTH),
GetBitMapAttr(scr->RastPort.BitMap, BMA_HEIGHT),
GetBitMapAttr(scr->RastPort.BitMap, BMA_DEPTH),
BMF_MINPLANES, scr->RastPort.BitMap)))
{
BltBitMap(scr->RastPort.BitMap,0,0,
bm,
0,0,
GetBitMapAttr(scr->RastPort.BitMap, BMA_WIDTH),
GetBitMapAttr(scr->RastPort.BitMap, BMA_HEIGHT),
0xc0, 0xff, NULL);
}
}

if (bm != NULL)
{
if ((dto = NewDTObject(0,
DTA_SourceType, DTST_RAM,
DTA_GroupID, GID_PICTURE,
PDTA_DestMode, PMODE_V43,
TAG_END)))
{
struct BitMapHeader *bmh;
BPTR fh;

GetDTAttrs(dto,PDTA_BitMapHeader,&bmh,TAG_END);

bmh->bmh_PageWidth =
bmh->bmh_Width = GetBitMapAttr(bm, BMA_WIDTH);
bmh->bmh_PageHeight =
bmh->bmh_Height = GetBitMapAttr(bm, BMA_HEIGHT);

if ((bmh->bmh_Depth = GetBitMapAttr(bm, BMA_DEPTH)) >= 15)
{
bmh->bmh_Depth = 24;

SetDTAttrs(dto,0,0,
PDTA_NumColors, 0,
PDTA_ModeID, GetVPModeID(&scr->ViewPort),
PDTA_BitMap, bm,
TAG_END);
}
else
{
ULONG *cregs = NULL;
UBYTE *cmap = NULL, modeid;
int i, ncols;

modeid = GetVPModeID(&scr->ViewPort);

if (modeid & HAM_KEY)
ncols = (1 << (bmh->bmh_Depth-2));
else if (modeid & EXTRAHALFBRITE_KEY)
ncols = 32;
else
ncols = (1 << bmh->bmh_Depth);

SetDTAttrs(dto,0,0,
PDTA_NumColors, ncols,
PDTA_ModeID, modeid,
PDTA_BitMap, bm,
TAG_END);

GetDTAttrs(dto,
PDTA_ColorRegisters, &cmap,
PDTA_CRegs, &cregs,
TAG_DONE);

if (cmap && cregs)
{
for (i = 0; i < ncols; i++)
{
ULONG tab[3];

GetRGB32(scr->ViewPort.ColorMap, i,1, tab);

*cmap++ = tab[0] >> 24;
*cmap++ = tab[1] >> 24;
*cmap++ = tab[2] >> 24;

*cregs++ = tab[0];
*cregs++ = tab[1];
*cregs++ = tab[2];
}
}
}

if ((fh = Open(argv[1], MODE_NEWFILE)))
{
if(!DoDTMethod(dto,0,0,DTM_WRITE,0,fh,DTWM_IFF,0))
{
}

Close(fh);
}

DisposeDTObject(dto);
}
}

UnlockPubScreen(NULL, scr);

return 0;
}
 
malte2   Nutzer

11.09.2006, 16:04 Uhr

[ - Direktlink - ]
Thema: jpeg's sichern unter OS4?
Brett: Programmierung

DoGadgetMethod bzw. DoDTMethod nur verwenden, wenn die Msg Struktur eine GadgetInfo hat ansonsten DoMethod nutzen.
 
malte2   Nutzer

09.09.2006, 14:38 Uhr

[ - Direktlink - ]
Thema: Echten VBlank ermitteln
Brett: Programmierung

@bubblebobble:

Solange es nicht synchron ist, ist es sowieso vollkommen sinnlos.
 
malte2   Nutzer

08.09.2006, 14:39 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

Und das ist genau das gleiche, was BltMaskBMRP() macht. Nur mit den Unterschied, daß die Systemfunktion den Modulo der Sourcebitmap übernimmt und damit die Maske unnötige Leerzeilen benötigt.
 
malte2   Nutzer

07.09.2006, 23:13 Uhr

[ - Direktlink - ]
Thema: Olles Dönnerfleisch von der Imbissbude
Brett: Get a Life

Gyros oder Döner, kommt doch alles vom selben Spieß, aber das war wohl auch der Witz am Beitrag ;-) Mein Gott, das Fleich war doch nicht ungesund, nur nicht mehr geschmacklich so doll. Aber in Marinade oder als Döner schmeckt sowieso keiner mehr den Unterschied. Beim Bund lagern die doch sogar Lebenmittel über Jahrzehnte ein. Also was soll's?

Ein nicht ganz erst gemeinter Beitrag ;-)

[ Dieser Beitrag wurde von malte2 am 07.09.2006 um 23:13 Uhr geändert. ]
 
malte2   Nutzer

07.09.2006, 17:17 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@whose:

Bei p96 kann der User den IRQ abschalten. Die Emulation besteht darinn einfach den OCS/ECS/AGA Chipsatz IRQ zu verwenden bzw. das Positionregister mittels Polling abzufragen. Bei OS4 hat wohl jemand einen Timerirq eingebaut, der den klassichen VBlank emuliert.

[ Dieser Beitrag wurde von malte2 am 07.09.2006 um 17:18 Uhr geändert. ]
 
malte2   Nutzer

07.09.2006, 17:12 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@thomas:

BMF_INTERLEAVED ist kein Flag in der BitMap Struktur, das Flag wird in GetBitMapAttr() "berechnet". Sein Beispiel funktioniert deshalb, weil ein Maskenblit nichts anderes als eine Folge von 3 Blits ist:

Soure->Dest mit (ABC|ANBNC)
Mask->Dest mit Minterm (0xe0)
Source->Dest mit (ABC|ANBNC)

Wobei aus der Maske eine BitMap erzeugt wird, bei der alle Plane Pointer dem ersten Pointer entsprechen.
 
malte2   Nutzer

06.09.2006, 16:15 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

WaitBOVP() basiert auf Polling, WaitTOF() nutzt das VBlank IRQ. Je nach Grafiksystem und Graka kann auch beides mit IRQ funktionieren oder überhaupt nicht (dann wird der Chipset IRQ benutzt bzw. Polling).
 
malte2   Nutzer

05.09.2006, 18:20 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@DariusBrewka:

Bei direkter HW Programmierung müssen die BitMaps natürlich im ChipRam liegen, nur kein normaler Mensch benutzt heute noch den Blitter direkt. Schon wegen der RTG Kompatiblität...

P96 kann, je nach Konfigurationseinstellung, die Daten auch im Fastram ablegen und den Amiga Blitter komplett abschalten (genaugenommen einfach nicht nutzen). Unabhängig von den Einstellungen wird der Speichertyp immer vorher geprüft und ggf. die CPU verwendet.

Was BltMaskBitMapRP() angeht, so fehlt der Hinweis in den Autodocs. Man könnte es auch als Fehler in der Routine deuten... Die Implementation ist auf jedenfall so, daß die Maske interleaved sein muß, wenn die Quelle Interleaved ist.
 
malte2   Nutzer

05.09.2006, 17:45 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@DariusBrewka:

Die Grafiksysteme enthalten CPU Routinen, die den Amiga Blitter emulieren können.

@bubblebobble

Wenn Du die BitMap blittest (mit BltBitMap), so kann sie auch im Videoram landen. Daher ist LockBitMap() sicherer. Es gibt noch UserPrivate BitMaps bei p96 aber die IIRC funktionieren nicht korrekt.



Bzgl. Interleaved BitMaps:

Wenn die Quellbitmap interleaved ist, so muß auch die Maske interleaved sein. Das heißt, bei 4 Bit Tiefe muß jede Zeile der Maske 4x wiederholt werden bevor die nächste Zeile kommt. BltMaskBitMap() benötigt sie so.
 
malte2   Nutzer

05.09.2006, 17:13 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@bubblebobble:

Das braucht AR() auch nicht zu wissen, die anderen Grafikfunktionen (Blt MaskBitMap, BltBitMap etc.) überprüfen den Speichertyp.
 
malte2   Nutzer

05.09.2006, 16:57 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@bubblebobble:

LockBitMapTags() friert das ganze Board ein, daher es können keine Grafikoperation stattfinden. Eine wunderbar einfache Art&Weise deadlocks zu verursachen ;-)

Was die Maske angeht, so kannst Du sie am besten mit AllocRaster() anlegen, denn dann brauchst Du dich nicht um das Grafiksystem weiter zu sorgen. Die RTG Systeme sind auch so schlau und erkennen FastRam BitMaps/Masken, so daß nicht die Gefahr besteht, daß der Amiga Blitter verwendet wird.
 
malte2   Nutzer

05.09.2006, 16:52 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@DariusBrewka:

Eine Maske für Interleaved BitMaps muß auch selber interleaved sein (daher Breite * Tiefe * Höhe) damit BltMaskBitMap() funktioniert.
 
malte2   Nutzer

05.09.2006, 16:37 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

@DariusBrewka:

Das /8 ist natürlich Unsinn, hatte gerade nochwas anderes im Sinn...
 
malte2   Nutzer

05.09.2006, 16:18 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

Für non-interleaved bitmaps:

PLANEPTR mask = AllocRaster(GetBitMapAttr(bm, BMA_WIDTH)/8, GetBitMapAttr(bm, BMA_HEIGHT));
 
malte2   Nutzer

05.09.2006, 10:28 Uhr

[ - Direktlink - ]
Thema: FritzBox und langes Telefonkabel
Brett: Get a Life

Die Anschlusskabel dürfen idR. 20m lang sein (vom Telefon bis zur Anschlussdose). Ich selber habe hier sogar ca. 30m an der FB und das läuft ohne Probleme. Allerdings habe ich zum Teil Netzwerkkabel verwendet.
 
malte2   Nutzer

02.09.2006, 21:16 Uhr

[ - Direktlink - ]
Thema: Screennotify & closewindow problem
Brett: Programmierung

Stimmt! Habe notifyintuition.library mit screennotify.library vertauscht.
 
malte2   Nutzer

02.09.2006, 14:45 Uhr

[ - Direktlink - ]
Thema: Screennotify & closewindow problem
Brett: Programmierung

Sofern man es nicht anders angibt, sendet die lib die Messages asynchrone.
 
malte2   Nutzer

31.08.2006, 22:01 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

FillPixelArray() ist eine cgx Funktion. Im Prinzip ein Truecolor RectFill().
 
malte2   Nutzer

31.08.2006, 18:02 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

WriteChunkyPixels() verwendet WritePixelLine8(), wenn keine C2P HW vorhanden ist.
 
malte2   Nutzer

30.08.2006, 21:51 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

Sowas wie:

struct RastPort rp;
InitRastPort(&trp);
rp.BitMap = AllocBitMap(w,h,t,0,bla);
irgendeine_x_beliebige_gfx_operation(&trp,...);

funktioniert IMMER egal, welchen Wert 'w' hat (natürlich größer 0). Wenn das nicht funktioniert, dann ist entweder das gfx system, welches Du benutzt, fehlerhaft oder Du machst irgendwas falsch.

[ Dieser Beitrag wurde von malte2 am 30.08.2006 um 21:51 Uhr geändert. ]
 
malte2   Nutzer

30.08.2006, 19:00 Uhr

[ - Direktlink - ]
Thema: Bitmaps nur durch 16 teilbare Breite?
Brett: Programmierung

BitMaps können eine beliebige Breite haben und für die Zeichenoperationen ist das auch ziemlich egal (wegen Rundung auf 16), GetBitMapAttr(bitmap, BMA_WIDTH) wird dir aber immer eine durch mind. 16 teilbare Breite zurückgeben da manche Programme ansonsten nicht mehr korrekt durch eine Maske blitten können.
 
malte2   Nutzer

26.08.2006, 14:37 Uhr

[ - Direktlink - ]
Thema: Der Admin verstößt gegen die Nettikette
Brett: Forum und Interna

Seiner ist länger :lach:
 
malte2   Nutzer

22.08.2006, 11:19 Uhr

[ - Direktlink - ]
Thema: PC startet von selbst
Brett: Andere Systeme

Pedant ;-)
 
malte2   Nutzer

22.08.2006, 09:52 Uhr

[ - Direktlink - ]
Thema: PC startet von selbst
Brett: Andere Systeme

@harryfisch:

Nein, eine BATTERIE ;-)
 
malte2   Nutzer

21.08.2006, 19:43 Uhr

[ - Direktlink - ]
Thema: PC startet von selbst
Brett: Andere Systeme

Akku? Lithium Zelle, Typ CR2032, 3V.
 
malte2   Nutzer

20.08.2006, 15:27 Uhr

[ - Direktlink - ]
Thema: Bitte klicken
Brett: Get a Life

Wenn er seinen A1200 aus Geldnot schon verkaufen muß, so wird er dir sicherlich nichts zahlen können ;-)
 
malte2   Nutzer

19.08.2006, 11:18 Uhr

[ - Direktlink - ]
Thema: Die Machenschaften von 9live
Brett: Get a Life

Wenn's um verlieren von Wertsachen geht:

http://bundesrecht.juris.de/bundesrecht/bgb/__965.html
 
malte2   Nutzer

15.08.2006, 18:25 Uhr

[ - Direktlink - ]
Thema: Zahnriemen 100mxl
Brett: Get a Life

Hallo,

kennt jemand zufällig eine Bezugsquelle für og. Zahnriemen (wird zB. in Druckern verwendet)?

mfG.
 
malte2   Nutzer

09.08.2006, 16:26 Uhr

[ - Direktlink - ]
Thema: Astra Sat Verschlüsselung bei den FreeFernsehen
Brett: Get a Life

Zitat:
Wer keine Karte hat, kann auch nicht schauen

Das mag ich stark bezweifeln ;-)

 
 
1 2 3 -4- 5 Ergebnisse der Suche: 148 Treffer (30 pro Seite)

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

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