Bonjour,
J'ai lut que les API DirectDraw étaient obsoléte , et remplacer par DirectGraphics,
cependant je n'ai trouvé aucun exemple simple utilisant DirectGraphics.
La migration de DirectDraw vers DirectGrpahics est t'il simple ?
Bonjour,
J'ai lut que les API DirectDraw étaient obsoléte , et remplacer par DirectGraphics,
cependant je n'ai trouvé aucun exemple simple utilisant DirectGraphics.
La migration de DirectDraw vers DirectGrpahics est t'il simple ?
Pourquoi t'embêter avec DiredtDraw ou DirectX alors qu'utiliser SFML ou SDL est bien plus simple, supporte plusieurs plateformes et possède un meilleur support puisqu'utilisés par un grand nombre de personnes ?
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Désolé mais SDL ne prend pas en charge directdraw,
J'ai fais une recherche dans les sources de SDL la chaine 'IDirectDrawSurface' et rien trouvé.
Peux être il utilise Direct3D à la place.
Qu'est que cela peut faire qu'il supporte pas DirectDraw ?
Sachant que si tu utilise la SDL , tu n'utilise par logique plus DirectDraw (vu que c'est une lib complète pour le rendu 2D).
Si on parle de la SDL1 elle est purement software donc utilise assez peu l'api Windows
Si on parle de la SDL2 elle utilise OpenGL.
J'ai tester et modifier un code source SDL qui affiche un bitmap , ca fonctionne et à premiere vue assez facile d'utilisation.
J'ai comparer mon projet directdraw affichant un bitmap à mon projet SDL affichant le même bmp,je constate alors que mon projet SDL consomme beaucoup plus de UC (20%) par rapport à projet utilisant directdraw (1%).
Il s'agit bien de SDL2.
Je joint le code et apparament le bitmap est afficher logiciellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 #include <iostream> #include <Windows.h> #include <SDL2/SDL.h> const int WIDTH = 1024, HEIGHT = 768; //int main( int argc, char *argv[] ) int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SDL_Surface *imageSurface = NULL; SDL_Surface *windowSurface = NULL; if ( SDL_Init( SDL_INIT_EVERYTHING ) < 0 ) { std::cout << "SDL could not initialize! SDL Error: " << SDL_GetError( ) << std::endl; } SDL_Window *window = SDL_CreateWindow( "Hello SDL World", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, SDL_WINDOW_OPENGL); windowSurface = SDL_GetWindowSurface( window ); if ( NULL == window ) { std::cout << "Could not create window: " << SDL_GetError( ) << std::endl; return EXIT_FAILURE; } SDL_Event windowEvent; //imageSurface = SDL_LoadBMP( "t:\\internet\\sdl\\use\\Tutorial 003_Drawing A BMP Image\\hello_world.bmp" ); imageSurface = SDL_LoadBMP("image4.bmp"); if( imageSurface == NULL ) { std::cout << "SDL could not load image! SDL Error: " << SDL_GetError( ) << std::endl; } int gh=0; while ( true ) { if ( SDL_PollEvent( &windowEvent ) ) { if ( SDL_QUIT == windowEvent.type ) { break; } } Sleep(75); /*SDL_LockSurface(imageSurface); memset(imageSurface->pixels, gh++, 1000); SDL_UnlockSurface(imageSurface);*/ SDL_Rect src = imageSurface->clip_rect; SDL_Rect dst = windowSurface->clip_rect; SDL_LowerBlitScaled( imageSurface, &src, windowSurface, &dst ); //Update the surface SDL_UpdateWindowSurface( window ); } SDL_FreeSurface( imageSurface ); SDL_FreeSurface( windowSurface ); imageSurface = NULL; windowSurface = NULL; SDL_DestroyWindow( window ); SDL_Quit( ); return EXIT_SUCCESS; }
J'avais utiliser les API de la 1.2 , en utilisant celle de la 2.0 (le code différe) ca speed.
OK.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager