Lynix

Vive le RRID

May 11th, 2018
170
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×