আমি এসডিএল 2 দিয়ে শুরু করছি এবং এসডিএল_দাতা কী তা বোঝার চেষ্টা করে কিছু সমস্যা হচ্ছে।
এটা কি? এটার কাজ কি? এসডিএল_রেন্ডারার, এসডিএল_উন্ডো, এসডিএল_সর্ফেস এবং এসডিএল_র কাঠামোর মধ্যে পার্থক্য কীভাবে এবং সেগুলি কীভাবে সম্পর্কিত?
এই প্রবর্তক কোডটি বোঝার চেষ্টা করার সময় আমার এতে সমস্যা ছিল:
#include <iostream>
#include <SDL2/SDL.h>
int main()
{
/* Starting SDL */
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
/* Create a Window */
SDL_Window *window = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
if (window == nullptr) {
std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
return 1;
}
/* Create a Render */
SDL_Renderer *render = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (render == nullptr) {
std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
return 1;
}
/* Load bitmap image */
SDL_Surface *bmp = SDL_LoadBMP("./Tutorial/res/Lesson1/hello.bmp");
if (bmp == nullptr) {
std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
return 1;
}
/* Upload surface to render, and then, free the surface */
SDL_Texture *texture = SDL_CreateTextureFromSurface(render, bmp);
SDL_FreeSurface(bmp);
if (texture == nullptr){
std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
return 1;
}
/* Draw the render on window */
SDL_RenderClear(render); // Fill render with color
SDL_RenderCopy(render, texture, NULL, NULL); // Copy the texture into render
SDL_RenderPresent(render); // Show render on window
/* Wait 2 seconds */
SDL_Delay(5000);
/* Free all objects*/
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(render);
SDL_DestroyWindow(window);
/* Quit program */
SDL_Quit();
return 0;
}
আমি টুইঙ্কলবার টিউটোরিয়াল (এসডিএল উইকিতে প্রস্তাবিত) ব্যবহার করেছিলাম এবং এসডিএল উইকি ডকুমেন্টেশন এবং কিছু বইয়ের দিকেও নজর রেখেছিলাম। তবে তাদের সবাই ধরে নিয়েছে যে আমি এই সংজ্ঞাগুলি জানি।