G2A Many GEOs
SHARE
TWEET

Vive le RRID

Lynix May 11th, 2018 (edited) 92 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. unsigned char* DrawBoDes1(unsigned int width, unsigned int height)
  2. {
  3.     assert(width > 0);
  4.     assert(height > 0);
  5.  
  6.     // Pas besoin de protéger le new ici: s'il déclenche une exception nous n'avons aucune mémoire à libérer
  7.     unsigned char* img = new unsigned char[width * height * 4];
  8.  
  9.     try
  10.     {
  11.         if (!FillImage(img, Color(135, 206, 235)))
  12.         {
  13.             delete[] img;
  14.  
  15.             return nullptr;
  16.         }
  17.     }
  18.     catch (const std::exception& e)
  19.     {
  20.         delete[] img;
  21.  
  22.         throw; //< On relance l'exception
  23.     }
  24.  
  25.     // Chargeons une image de soleil à mettre dans le coin haut-gauche
  26.     unsigned char* sunImg;
  27.     try
  28.     {
  29.         sunImg = LoadImgFromFile("sun.png");
  30.         if (!sunImg)
  31.         {
  32.             delete[] img;
  33.  
  34.             return nullptr;
  35.         }
  36.     }
  37.     catch (const std::exception& e)
  38.     {
  39.         delete[] img;
  40.  
  41.         throw;
  42.     }
  43.  
  44.     try
  45.     {
  46.         if (!BlitImage(img, sunImg, 0, 0))
  47.         {
  48.             delete[] sunImg;
  49.             delete[] img;
  50.  
  51.             return nullptr;
  52.         }
  53.     }
  54.     catch (const std::exception& e)
  55.     {
  56.         delete[] sunImg;
  57.         delete[] img;
  58.  
  59.         return nullptr;
  60.     }
  61.  
  62.     delete[] sunImg; //< Nous avons terminé avec le soleil, on le libère
  63.  
  64.     // Maintenant chargeons une image de maison
  65.     unsigned char* houseImg;
  66.     try
  67.     {
  68.         houseImg = LoadImgFromFile("sun.png");
  69.         if (!houseImg)
  70.         {
  71.             delete[] img;
  72.  
  73.             return nullptr;
  74.         }
  75.     }
  76.     catch (const std::exception& e)
  77.     {
  78.         delete[] img;
  79.  
  80.         throw;
  81.     }
  82.  
  83.     try
  84.     {
  85.         if (!BlitImage(img, houseImg, 300, 2000))
  86.         {
  87.             delete[] houseImg;
  88.             delete[] img;
  89.  
  90.             return nullptr;
  91.         }
  92.     }
  93.     catch (const std::exception& e)
  94.     {
  95.         delete[] houseImg;
  96.         delete[] img;
  97.  
  98.         return nullptr;
  99.     }
  100.  
  101.     delete[] houseImg; //< Nous avons fini avec la maison, on la libère
  102.  
  103.     // Autres opération similaires (dessin de nuages, colline, etc.)
  104.  
  105.     return img;
  106. }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top