Meine Vermutung ist, wenn du dein Bitmap mit dem Colorkey blittest, so werden die Regionen, wo der Color-Key gesetzt ist nicht angefasst. Sie bleiben also in dem neuen Bild, so, wie sie von anfang an waren. Also schwarz.
Damit das funktioniert, solltest du folgendes machen: Colorkey ausschalten. Bitmap auf neues Bitmap blitten. Colorkey beim neuen und beim alten Bild wieder einschalten.
TGM schrieb:
schau dir mal SFML an..
http://www.sfml-dev.org/features.php
Die verwendet intern ebenfalls OpenGL Ausserdem ists sicherlich weniger aufwendig, nur den Zeichen-Code auf OpenGL umzuschreiben als die ganze App. von SDL nach SFML zu konvertieren.
LukasBanana schrieb:
Hat das Problem denn keiner? Dass bei Licht keine Farben mehr zu sehen sind?
Da du nicht der erste bist der sich fragt "Ob noch jemand das problem hatte?", haben wir nun etwas echt nuetzliches. Dieses spezielle feature haette dir jede frage die du hier im thread stellstest und tage lang auf antwort wartetest sofort beantwortet.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-177515
http://www.c-plusplus.net/forum/viewtopic-var-t-is-103156
http://www.c-plusplus.net/forum/viewtopic-var-t-is-86845
ich hab immer dx sdk installieren / installation eingegeben ...
ja ich will eigentlich so ziemlich alles mit den dx sdk machen - sprich ein vollständiges spiel. von sound über grafik bis controller.
hab dazu sogar ein buch da steht aber nicht wie man das sdk installiert xD
danke erstmal!
Edit: zfx.info oder ?
also es liegt offensichtlich am GraKa-Treiber. Hab mir einen neuen NVidia-Treiber gezogen uns installiert. Nun hab ich die OpenGL-Version 2.0.1. Jetzt sollte auch die o.g. Methode funktionieren
Hallo,
bin mir nicht sicher ob ich in diesem Board richtig bin. Bitte verschiebt den Post entsprechend, sollte ich mich vertan haben.
Nun zum Problem:
Ich soll ein Windows Media Player ähnliches ActiveX Control basteln mit dem man Videos und/oder/mit Audio abspielen kann. Das Control soll dann mittels Java SWT in eine Java Anwendung gepflanzt werden.
Ich komme gänzlich aus der Java Ecke und hab nur rudimentäre C/C++ Kenntnisse. Im Studium haben wir C nur so angekratzt und Zeit war auch nicht wirklich vorhanden um sich da weiter rein zu vertiefen. Jetzt steh ich halt etwas doof da...
Wie dem auch sei:
Ich bin auf der Suche nach jeglicher Hilfestellung. Was ich bisher geschafft habe:
Ich hab in VS2005 ein DirectShow Projekt angelegt mit dem ich in einem "ActiveMovie Window" beliebige Videos etc. abspielen kann.
Ich hab ein weiteres Projekt, in dem ich ein ATL Control Tutorial durchgegangen bin (Das Polygon-Dingenskirchens-Sample aus dem MSDN, falls das jemand was sagt).
Beides für sich funktioniert. Aber ich hab kein Plan wie ich jetzt das Videobild vom "ActiveMovie Window" in das Control rein bekomme. Irgendwie fehlt mir hier die Erfahrung / das Wissen über die gemeinsamen Schnittstellen.
Gegoogelt hab ich schon, aber ich hab entweder etwas zum einen, ODER zum anderen gefunden. Beides in Kombination hab ich noch nicht entdeckt.
Würde ich freuen wenn sich da jemand in der Materie auskennt und mir den einen oder anderen Hinweis/Link geben könnte wo ich mich bzgl. DirectShow in Kombination mit ActiveX Controls einlesen kann.
Gruß
Alex
nein hab ich nicht....wobei vieleicht sollte ich.....
Schade da man so um den heissen brei reden muss. Das du das kannst glaub ich dir,
und das du ne super übersicht hast auch.
Das meine ausformulierungen manchmal starke mängel aufweist ist mir schon seit der schulzeit bewusst.
Ich weiss sogar was eine sinus kurve ist
Aber ich weiss nicht warum die das besser hibekommt. sleep dunktioniert und die berechnung mit dem sin wird das denk ich doch auch nicht so abbremsen. Ich lern gern was neues....also stop mit dem datenmüll und auf.
naja wenn de mir das zeigst wie ich das umsetzten kann wäre das nett
Achso, also erst auf die richtige Position bringen, dann rotieren und dann die Position wieder zurück schieben... also praktisch so wie du es (bzw das tutorial) geschrieben hatte.
Ich bin mir nicht sicher, glaube es aber vorhin schonmal so probiert zu haben...
naja es klappt jetzt danke
void fillUpRGBVector(AUX_RGBImageRec *image)
{
vector<vector<vector<int>>> tmp;
for (unsigned int i = 0; i < image->sizeY; i++)
{
vector<vector<int>> tmp2;
for(unsigned int j = 0; j < image->sizeX; j++)
{
vector<int> tmp3;
tmp3.push_back((int) (image->data[(i * image->sizeY * 3) + (j * 3) + 0]));
tmp3.push_back((int) (image->data[(i * image->sizeY * 3) + (j * 3) + 1]));
tmp3.push_back((int) (image->data[(i * image->sizeY * 3) + (j * 3) + 2]));
tmp2.push_back(tmp3);
}
tmp.push_back(tmp2);
}
RGB = tmp;
}
Wie gesagt sehr unschön, aber es hat funktioniert
RGB ist ein vector<vector<vector<int>>>, der innere vector beinhaltet die RGB-Werte, die äußeren sind für zeile bzw. Spalte da
Inzwischen hab ich das Ganze auf Matrizen umgestellt, aber da verwende ich auch fremden Code, den ich vermutlich nicht veröffentlichen darf.
Grüßx
mtx
Funktioniert inzwischen. Ich glaube es lag sogar an deinem benannten Fehler. Kann ich nicht genau sagen, ich hab ein Testprogramm geschrieben um meinen Fehler zu finden und dann hat's auch geklappt.
Noch ne kleine Frage:
Was ist schneller, in einer for-Schleife eine Displaylist aktualisieren oder einen VBO-Buffer aktuallisieren?
wie gesagt, wenn du sonst eigene matrizen verwendest, kann es schon sein dass du left/right-handed verwechselst.
mit
[cpp]glFrustum(-1,1,
1,-1,
1,100);[/quote]koenntest du das eventuell kompensieren, aber naja...