Subversion Repositories Kolibri OS

Rev

Rev 1648 | Rev 1684 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. <html>
  2. <head>
  3. <title>áèáëèîòåêà äëÿ ðàáîòû ñ 2d áóôåðàìè</title>
  4. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
  5. <style>
  6. body
  7. {
  8.   font-size: 15px;
  9.   font-family: "Bookman Old Style";
  10.   color: black;
  11.   text-align: justify;
  12. }
  13. h1 { color: green; font-size: 23px; }
  14. h2 { color: green; font-size: 21px; }
  15. h3 { color: green; font-size: 19px; }
  16. h4 { color: #803f00; font-size: 17px; }
  17. i { color: #0099cc; }
  18. b { color: #0099cc; }
  19. p {
  20.   text-indent: 1em;
  21.   margin-top: 3px;
  22.   margin-bottom: 2px;
  23.   margin-left: 0px;
  24.   margin-right: 0px;
  25. }
  26. ol, ul, dl{
  27.   margin-top: 3px;
  28.   margin-bottom: 2px;
  29. }
  30. pre
  31. {
  32.   padding: 2px;
  33.   padding-left: 20px;
  34.   margin-top: 5px;
  35.   margin-bottom: 5px;
  36.   margin-left: 0px;
  37.   margin-right: 0px;
  38.   font-family: "Courier New";
  39.   font-size: 15px;
  40.   color: #004000;
  41.   background-color: #ffd0ff;
  42. }
  43. table { font-size: 15px; }
  44. </style>
  45. </head>
  46.  
  47. <body>
  48.  
  49. <h1>Îãëàâëåíèå</h1>
  50. <ul>
  51. <li>Âñòóïëåíèå</li>
  52. <li><a href="#f_buf">Ôîðìàòû áóôåðîâ</a></li>
  53. <li><a href="#fun">Ôóíêöèè</a><br>
  54. <li><a href="#const">Êîíñòàíòû</a><br>
  55. <li><a href="#tabl_e">Òàáëèöà ýêñïîðòà</a></li>
  56. <li><a href="#hist">Èñòîðèÿ</a></li>
  57. </ul>
  58.  
  59. <h1>Âñòóïëåíèå</h1>
  60. <p>Äîêóìåíòàöèÿ ê ñâîáîäíîé áèáëèîòåêå <b>buf2d.asm</b>, äëÿ <b>ÎÑ Êîëèáðè</b>.
  61.  Ýòà áèáëèîòåêà ñîçäàíà äëÿ ðàáîòû ñ 2d èçîáðàæåíèÿìè.
  62.  Ñ åå ïîìîùüþ ìîæíî ñîçäàâàòü áóôåðà ñ èçîáðàæåíèÿìè â ïàìÿòè, è ïðè íåîáõîäèìîñòè âûâîäèòü èõ íà ýêðàí.
  63.  Èçîáðàæåíèÿ ìîæíî íàêëàäûâàòü îäíî íà äðóãîå, ïîääåðæèâàåòñÿ ðàáîòà ñ ïðîçðà÷íûìè èçîáðàæåíèÿìè, åñòü ôóíêöèÿ ðèñîâàíèÿ ëèíè ïîêà íà ýòîì âñå.</p>
  64.  
  65. <p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 07.10.10.</p>
  66.  
  67. <h1><a name="f_buf">Ôîðìàòû áóôåðîâ</a></h1>
  68. <p>Ïîääåðæèâàåòñÿ 3 ôîðìàòà áóôåðîâ.
  69.  Êàæäàÿ ôóíêöèÿ ïðè ðàáîòå ñ áóôåðàìè ìîæåò áûòü ðàñ÷èòàíà íà ðàáîòó ñ îïðåäåëåííûìè ôîðìàòàìè èçîáðàæåíèé.</p>
  70.  
  71. <h4>8 áèò</h4>
  72. <p>Ñîæåðæèò àëüôà êàíàë <b>a</b> (ïðîçðà÷íîñòü) èçîáðàæåíèÿ. Íà ýêðàí íå âûâîäèòñÿ. Èñïîëüçóåòñÿ äëÿ ñîçäàíÿ 32-áèòíûõ áóôåðîâ.</p>
  73. <h4>24 áèò</h4>
  74. <p>Äàííûé áóôåð ñîäåðæèò èçîáðàæåíèå â ôîðìàòå <b>rgb</b>. Ìîæåò âûâîäèòñÿ íà ýêðàí.</p>
  75. <h4>32 áèò</h4>
  76. <p>Ñîäåðæèò ïðîçðà÷íîå èçîáðàæåíèå â ôîðìàòå <b>rgba</b>. Íà ýêðàí íå âûâîäèòñÿ. Èñïîëüçóåòñÿ äëÿ íàëîæåíèÿ èçîáðàæåíèé.</p>
  77.  
  78. <h1><a name="fun">Ôóíêöèè</a></h1>
  79.  
  80. <p>Ïî÷òè âñå ôóíêöèè 1-ì ïàðàìåòðîì ïðèíèìàþò óêàçàòåëü íà ñòðóêòóðó áóôåðà,
  81.  èç êîòîðîé ìîãóò èñïîëüçîâàòüñÿ ïàðàìåòðû, íóæíûå äëÿ ðàáîòû êîíêðåòíîé ôóíêöèè.
  82.  Ïðèìåð ñòðóêòóðû áóôåðà èçîáðàæåíèÿ:</p>
  83. <pre>align 4
  84. buf_0:
  85.         dd    0 ;+ 0 óêàçàòåëü íà áóôåð èçîáðàæåíèÿ
  86.         dw  100 ;+ 4 îòñòóï ñëåâà
  87.         dw   10 ;+ 6 îòñòóï ñïðàâà
  88.         dd  150 ;+ 8 øèðèíà
  89.         dd  100 ;+12 âûñîòà
  90.         dd 0x80 ;+16 ôîíîâûé öâåò
  91.         db   24 ;+20 áèò íà ïèêñåëü</pre>
  92.  
  93. <h4>lib_init</h4>
  94. <p>Ýòà ôóíêöèÿ ïîëó÷àåò óêàçàòåëè íà ôóíêöèè ðàáîòû ñ ïàìÿòüþ, âûçûâàòñÿ äîëæíà ïðè çàãðóçêå áèáëèîòåêè. Ìîæåòå èñïîëüçîâàòü ìàêðîñ <b>@use_library_mem</b>, äëÿ åå àâòîìàòè÷åñêîé íàñòðîéêè.</p>
  95.  
  96. <h4>buf2d_create</h4>
  97. <p>Ñîçäàåò áóôåð è ÷èñòèò åãî ôîíîâûì öâåòîì.</p>
  98.  
  99. <h4>buf2d_create_f_img</h4>
  100. <p>Ñîçäàåò áóôåð íà îñíîâå èçîáðàæåíèÿ â ôîðìàòå <b>rgb</b>.</p>
  101.  
  102. <h4>buf2d_clear</h4>
  103. <p>×èñòèò áóôåð ôîíîâûì öâåòîì.</p>
  104.  
  105. <h4>buf2d_draw</h4>
  106. <p>Ðèñóåò áóôåð íà ýêðàíå (ðàáîòàåò ÷åðåç ñèñòåìíóþ ô. 7). Ðèñóþòñÿ òîëüêî áóôåðà ñ ãëóáèíîé öâåòà 24 áèòà.</p>
  107.  
  108. <h4>buf2d_delete</h4>
  109. <p>Îñâîáîæäàåò ïàìÿòü çàíÿòóþ èçîáðàæåíèåì áóôåðà.</p>
  110.  
  111. <h4>buf2d_line</h4>
  112. <p>Ðèñóåò â áóôåðå ëèíèþ ñ çàäàííûì öâåòîì è êîîðäèíàòàìè. Ïðèìåð:</p>
  113. <pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;ðèñóåì ëèíèþ</pre>
  114. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ëèíèÿ; 30, 10, 110, 70 - êîîðäèíàòû ëèíèè; 0xffff00 - öâåò ëèíèè.</p>
  115.  
  116. <h4>buf2d_rect_by_size</h4>
  117. <p>Ðèñóåò ïðÿìîóãîëüíóþ ðàìêó, ïî äâóì êîîðäèíàòàì, 2-ÿ êîîðäèíàòà çàäàíà ïî ðàçìåðó.</p>
  118. <pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
  119. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ïðÿìîóãîëüíèê; 10, 10 - êîîðäèíàòû ëåâîãî âåðõíåãî óãëà; 150, 100 - ðàçìåð ïðÿìîóãîëüíèêà; 0x8080 - öâåò ëèíèè.</p>
  120.  
  121. <h4>buf2d_filled_rect_by_size</h4>
  122. <p>Ðèñóåò çàêðàøåííûé ïðÿìîóãîëüíèê, ïî äâóì êîîðäèíàòàì, 2-ÿ êîîðäèíàòà çàäàíà ïî ðàçìåðó. Åñëè ðàçìåð çàäàòü 1*1, òî áóäåò íàðèñîâàíà òî÷êà ðàçìåðîì â 1 ïèêñåëü, ò.å. ðàçìåð ïðÿìîóãîëüíèêà â ïèêñåëÿõ áóäåò ðàâåí óêàçàííîìó.</p>
  123. <pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
  124. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ïðÿìîóãîëüíèê; 10, 10 - êîîðäèíàòû ëåâîãî âåðõíåãî óãëà; 150, 100 - ðàçìåð ïðÿìîóãîëüíèêà; 0x8080 - öâåò ïðÿìîóãîëèêà.</p>
  125.  
  126. <h4>buf2d_circle</h4>
  127. <p>Ðèñóåò â áóôåðå îêðóæíîñòü ñ çàäàííûì öâåòîì è ðàäèóñîì. Ïðèìåð:</p>
  128. <pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
  129. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ îêðóæíîñòü; 25, 70 - êîîðäèíàòû öåíòðà; 15 - ðàäèóñ; 0xff0000 - öâåò.</p>
  130.  
  131. <h4>buf2d_img_hdiv2</h4>
  132. <p>Ñæèìàåò èçîáðàæåíèå â áóôåðå ïî âûñîòå â 2 ðàçà, ïðè ýòîì ðàçìåð ñàìîãî áóôåðà íå óìåíüøàåòñÿ.</p>
  133.  
  134. <h4>buf2d_img_wdiv2</h4>
  135. <p>Ñæèìàåò èçîáðàæåíèå â áóôåðå ïî øèðèíå â 2 ðàçà, ïðè ýòîì ðàçìåð ñàìîãî áóôåðà íå óìåíüøàåòñÿ.</p>
  136.  
  137. <h4>buf2d_conv_24_to_8</h4>
  138. <p>Ïðåîáðàçîâàíèå áóôåðà èç 24-áèòíîãî â 8-áèòíûé.
  139.  Ïðè ïðåîáðàçîâàíèè óêàçûâàåòñÿ êàêîé öâåò áåðàòü: 0-ñèíèé, 1-çåëåíûé, 2-êðàñíûé.
  140.  Îñòàëüíûå öâåòà ïðè ïðåîáðàçîâàíèè òåðÿþòñÿ.</p>
  141.  
  142. <h4>buf2d_conv_24_to_32</h4>
  143. <p>Ïðåîáðàçîâàíèå áóôåðà èç 24-áèòíîãî â 32-áèòíûé.
  144.  Ïðè ïðåîáðàçîâàíèè óêàçûâàåòñÿ òàêæå 8-áèòíûé áóôåð, êîòîðûé áóäåò èñïîëüçîâàí äëÿ ñîçäàíèÿ àëüôà êàíàëà. Ïðèìåð:</p>
  145. <pre>stdcall [buf2d_conv_24_to_32],buf_a,buf_b ;äåëàåì áóôåð rgba 32áèò</pre>
  146. <p>Äî âûïîëíåíèÿ ôóíêöèè áóôåð buf_a äîëæåí áûòü 24 áèòíûì, à áóôåð buf_b - 8 áèòíûì.
  147.  Ïîñëå âûïîëíåíèÿ ôóíêöèè áóôåð buf_a ñòàíåò 32 áèòíûì, áóôåð buf_b íå èçìåíèòñÿ.</p>
  148.  
  149. <h4>buf2d_bit_blt</h4>
  150. <p>Ðèñóåò â áóôåðå èçîáðàæåíèå èç äðóãîãî áóôåðà â óêàçàííûõ êîîðäèíàòàõ. Áóôåð â êîòîðîì ðèñóò (ïðèåìíèê) äîëæåí áûòü 24 áèòíûì, à òîò êîòîðûé ðèñóåòñÿ (èñòî÷íèê) 24 èëè 32 áèòíûì. Åñëè áóôåð èñòî÷íèê 32 áèòíûé, òî åãî ïðîçðà÷íîñòü ïðè ðèñîâàíèè íå ó÷èòûâàåòñÿ, äëÿ ó÷åòà ïðîçðà÷íîñòè èñïîëüçóåòñÿ ôóíêöèÿ <i>buf2d_bit_blt_transp</i>. Ïðèìåð:</p>
  151. <pre>stdcall [buf2d_bit_blt], buf_0, 50,30, buf_1 ;ïðîðèñîâêà ñðåäíåãî ñêèíà</pre>
  152. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ èçîáðàæåíèå (ïðèåìíèê);
  153.   buf_1 - ñòðóêòóðà áóôåðà ñ ðèñóåìûì èçîáðàæåíèåì (èñòî÷íèê);
  154.   50,30 - êîîðäèíàòû äëÿ âûâîäà èçîáðàæåíèÿ, îïðåäåëÿþò ïîëîæåíèå ðèñóåìîé êàðòèíêè â buf_0.</p>
  155.  
  156. <h4>buf2d_bit_blt_transp</h4>
  157. <p>Ðèñóåò â áóôåðå èçîáðàæåíèå èç äðóãîãî áóôåðà â óêàçàííûõ êîîðäèíàòàõ, ïðè ýòîì ó÷èòûâàåòñÿ ïðîçðà÷íîñòü.
  158.  Áóôåð êîòîðûé áóäåò íàðèñîâàí äîëæåí áûòü 32 áèòíûì, à òîò â êîòîðîì ðèñóþò 24 áèòíûì.</p>
  159.  
  160. <h4>buf2d_bit_blt_alpha</h4>
  161. <p>Ðèñóåò â áóôåðå èçîáðàæåíèå èç äðóãîãî áóôåðà â óêàçàííûõ êîîðäèíàòàõ, ïðè ýòîì ó÷èòûâàåòñÿ ïðîçðà÷íîñòü.
  162.  Áóôåð êîòîðûé áóäåò íàðèñîâàí äîëæåí áûòü 8 áèòíûì, à òîò â êîòîðîì ðèñóþò 24 áèòíûì.</p>
  163.  
  164. <h4>buf2d_cruve_bezier</h4>
  165. <p>Ðèñóåò ïî òðåì òî÷êàì îòðåçîê êðèâîé áåçüå.</p>
  166.  
  167. <h4>buf2d_convert_text_matrix</h4>
  168. <p>Ïðåîáðàçóåò ìàòðèöó ñ òåêñòîì ðàçìåðîì 16*16 â ðàçìåð 1*256. Íåîáõîäèìî äëÿ ñîçäàíèÿ ìàòðèöû äëÿ ðèñîâàíèÿ òåêñòà. Ïåðåä èñïîëüçîâàíèåì äàííîé ôóíêöèè ïðåäïîëàãàåòñÿ ÷òî åñòü èçîáðàæåíèå ñ ïîëíûì íàáîðîì ñèìâîëîâ ðàçìåðîì 16 ñòîëáöîâ íà 16 ñòðîê, èç êîòîðîãî ïðåäâàðèòåëüíî áûë ñîçäàí 8 áèòíûé áóôåð.</p>
  169. <pre>stdcall [buf2d_create_f_img], buf_1,[image_data] ;ñîçäàåì áóôåð 24 áèò íà îñíîâå äàííûõ èçîáðàæåíèÿ
  170. stdcall [buf2d_conv_24_to_8], buf_1,1 ;äåëàåì áóôåð ïðîçðà÷íîñòè 8 áèò
  171. stdcall [buf2d_convert_text_matrix], buf_1</pre>
  172. <p>ãäå buf_1 - ñòðóêòóðà áóôåðà äëÿ ôîðìèðîâàíèÿ òåêñòîâîé ìàòðèöû;
  173.   image_data - äàííûå èçîáðàæåíèÿ òåêñòîâîé ìàòðèöû â ôîðìàòå rgb, ðàçìåðîì 16*16 ñèìâîëîâ.</p>
  174.  
  175. <h4>buf2d_draw_text</h4>
  176. <p>Ðèñóåò òåêñò â áóôåðå, èñïîëüçóÿ ìàòðèöó ñ òåêñòîì ðàçìåðîì 1*256 ñèìâîëîâ. Ïðèìåð:</p>
  177. <pre>stdcall [buf2d_draw_text], buf_0, buf_1,some_text,20,10,0x4040ff ;ðèñóåì ñòðîêó ñ òåêñòîì</pre>
  178. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ òåêñò;
  179.   buf_1 - ñòðóêòóðà áóôåðà ñ òåêñòîâîé ìàòðèöåé â ôîðìàòå 8 áèò, ðàçìåðîì 1*256 ñèìâîëîâ;
  180.   some_text - òåêñò, êîòîðûé áóäåò âûâåäåí â áóôåð buf_0.</p>
  181.  
  182. <h4>buf2d_crop_color</h4>
  183. <p>Îáðåçàíèå áóôåðà, ïî óêàçàííîìó öâåòó. Ôóíêöèÿ èñïîëüçóåòñÿ äëÿ óìåíüøåíèÿ ïàìÿòè, çàíèìàåìîé áóôåðîì. Îòðåçàþòñÿ êðàéíèå ÷àñòè áóôåðà èìåþùèå îäèíàêîâûé öâåò. Ïðèìåð:</p>
  184. <pre>stdcall [buf2d_crop_color], buf_0,0xffffff,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM</pre>
  185. <p>ãäå buf_0 - ñòðóêòóðà áóôåðà êîòîðûé áóäåò îáðåçàí;
  186.   0xffffff - öâåò ïî êîòîðîìó áóäåò îáðåçàòüñÿ áóôåð;
  187.   BUF2D_OPT_CROP_TOP è BUF2D_OPT_CROP_BOTTOM - êîíñòàíòû, óêàçûâàþùèå ñ êàêèõ ñòîðîí îáðåçàòü áóôåð.</p>
  188.  
  189. <h4>buf2d_offset_h</h4>
  190. <p>Ñäâèã èçîáðàæåíèÿ â áóôåðå ïî âûñîòå ââåðõ èëè âíèç.</p>
  191.  
  192. <h1><a name="const">Êîíñòàíòû</a></h1>
  193. <h4>BUF2D_OPT_CROP_TOP equ 1</h4>
  194. <p>Êîíñòàíòà äëÿ ôóíêöèè buf2d_crop_color, îáîçíà÷àåò îáðåçêó áóôåðà ñâåðõó</p>
  195. <h4>BUF2D_OPT_CROP_LEFT equ 2</h4>
  196. <p>Êîíñòàíòà äëÿ ôóíêöèè buf2d_crop_color, îáîçíà÷àåò îáðåçêó áóôåðà ñëåâà</p>
  197. <h4>BUF2D_OPT_CROP_BOTTOM equ 4</h4>
  198. <p>Êîíñòàíòà äëÿ ôóíêöèè buf2d_crop_color, îáîçíà÷àåò îáðåçêó áóôåðà ñíèçó</p>
  199. <h4>BUF2D_OPT_CROP_RIGHT equ 8</h4>
  200. <p>Êîíñòàíòà äëÿ ôóíêöèè buf2d_crop_color, îáîçíà÷àåò îáðåçêó áóôåðà ñïðàâà</p>
  201.  
  202. <h1><a name="tabl_e">Òàáëèöà ýêñïîðòà</a></h1>
  203. <p>Ïðèìåð òàáëèöû ýêñïîðòà, ðàñ÷èòàííîé íà èñïîëüçîâàíèå ìàêðîñà <b>@use_library_mem</b>:</p>
  204. <pre>align 4
  205. import_buf2d_lib:
  206.         dd sz_lib_init
  207.         buf2d_create dd sz_buf2d_create
  208.         buf2d_create_f_img dd sz_buf2d_create_f_img
  209.         buf2d_clear dd sz_buf2d_clear
  210.         buf2d_draw dd sz_buf2d_draw
  211.         buf2d_delete dd sz_buf2d_delete
  212.         buf2d_line dd sz_buf2d_line
  213.         buf2d_rect_by_size dd sz_buf2d_rect_by_size
  214.         buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
  215.         buf2d_circle dd sz_buf2d_circle
  216.         buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
  217.         buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
  218.         buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
  219.         buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
  220.         buf2d_bit_blt dd sz_buf2d_bit_blt
  221.         buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
  222.         buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
  223.         buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
  224.         buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
  225.         buf2d_draw_text dd sz_buf2d_draw_text
  226.         buf2d_crop_color dd sz_buf2d_crop_color
  227.         buf2d_offset_h dd sz_buf2d_offset_h
  228.  
  229.         dd 0,0
  230.         sz_lib_init db 'lib_init',0
  231.         sz_buf2d_create db 'buf2d_create',0
  232.         sz_buf2d_create_f_img db 'buf2d_create_f_img',0
  233.         sz_buf2d_clear db 'buf2d_clear',0
  234.         sz_buf2d_draw db 'buf2d_draw',0
  235.         sz_buf2d_delete db 'buf2d_delete',0
  236.         sz_buf2d_line db 'buf2d_line',0
  237.         sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
  238.         sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
  239.         sz_buf2d_circle db 'buf2d_circle',0
  240.         sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
  241.         sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
  242.         sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
  243.         sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
  244.         sz_buf2d_bit_blt db 'buf2d_bit_blt',0
  245.         sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
  246.         sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
  247.         sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
  248.         sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
  249.         sz_buf2d_draw_text db 'buf2d_draw_text',0
  250.         sz_buf2d_crop_color db 'buf2d_crop_color',0
  251.         sz_buf2d_offset_h db 'buf2d_offset_h',0</pre>
  252.  
  253. <h1><a name="hist">Èñòîðèÿ</a></h1>
  254. <p>02.07.10 - ñàìàÿ ïåðâàÿ âåðñèÿ áèáëèîòåêè, 2 ïðèìåðà èñïîëüçîâàíèÿ.</p>
  255. <p>06.07.10 - ðàñøèðåíû âîçìîæíîñòè ôóíêöèè buf2d_bit_blt, òåïåðü îíà ìîæåò ðèñîâàòü 32 áèòíûå áóôåðû. Äîáàâëåíû 2 íîâûå ôóíêöèè: buf2d_bit_blt_alpha è buf2d_cruve_bezier. Íåáîëüøèå èçìåíåíèÿ â ôóíêöèè buf2d_line.</p>
  256. <p>16.07.10 - èñïðàâëåíî ïî 2 îøèáêè â ôóíêöèÿõ buf2d_img_hdiv2 è buf2d_img_wdiv2, êîòîðûå ìîãëè ïðîÿâëÿòüñÿ ïðè îïðåäåëåííûõ óñëîâèÿõ (åñëè ðàçìåð èçîáðàæåíèÿ áûë êðàòåí 4Êá è äð.). Äîáàâëåíû 2 ôóíêöèè äëÿ âûâîäà òåêñòà â áóôåð buf2d_convert_text_matrix è buf2d_draw_text.</p>
  257. <p>19.07.10 - äîáàâëåíà ôóíêöèÿ ðèñîâàíèÿ îêðóæíîñòè buf2d_circle;
  258.  èçìåíåí ôîðìàò áóôåðà - äëÿ øèðèíû è âûñîòû èñïîëüçóþòñÿ 4-õ áàéòíûå ÷èñëà âìåñòî 2-õ áàéòíûõ.</p>
  259. <p>29.07.10 - äîáàâëåíû ôóíêöèè buf2d_crop_color è buf2d_offset_h;
  260.  èñïðàâëåíèÿ â ôóíêöèè buf2d_delete.</p>
  261. <p>30.09.10 - äîáàâëåíà ôóíêöèÿ buf2d_rect_by_size.</p>
  262. <p>04.10.10 - äîáàâëåíà ôóíêöèÿ buf2d_filled_rect_by_size, äîðàáîòàíà ôóíêöèÿ buf_bit_blt_alpha.</p>
  263. <p>07.10.10 - äîðàáîòàíà ôóíêöèÿ buf_bit_blt (ïðè ïîïûòêå íàðèñîâàòü èçîáðàæåíèå çà ïðåäåëàìè ïðàâîãî êðàÿ áóôåðà ïðèëîæåíèå âûçâàâøåå ôóíêöèþ ïàäàëî).</p>
  264. <p>11.10.10 - èñïðàâëåíî çàäàíèå öâåòîâ â íåêîòîðûõ ôóíêöèÿõ, êðàñíûé è ñèíèé öâåòà ïîìåíÿë ìåñòàìè. Òåïåðü öâåòà ñîâïàäàþò ñ ñèñåìíûìè ôóíêöèÿìè.</p>
  265.  </body>
  266. </html>