本文共 1183 字,大约阅读时间需要 3 分钟。
{
//直接操作缓存 char *buffer; int x, y; const GBVisualButton * pVisualButton =0; int layer_width; int row_width_in_byte; gdi_layer_struct* next_layer; U32 src_byte_per_pixel; gdi_handle CurLayer; pVisualButton = bt; gdi_layer_get_active ( &CurLayer ); gdi_layer_get_buffer_ptr ( (U8 **)&buffer ); next_layer = (gdi_layer_struct*)CurLayer; src_byte_per_pixel = next_layer->bits_per_pixel / 8; row_width_in_byte = bt->comprect.w * src_byte_per_pixel; for ( y = GET_BUTTON_RECT_Y(pLayout, bt); y < GET_BUTTON_RECT_Y(pLayout, bt)+bt->comprect.h - 1; y++ ) { char * pRow = &buffer[(y * next_layer->width + GET_BUTTON_RECT_X(pLayout, bt))* src_byte_per_pixel]; char * pRowEnd = pRow + row_width_in_byte; for(; pRow < pRowEnd; pRow++) { *pRow = ~(*pRow);// if (pLayout == &s_HWLayout)// *pRow = ~(*pRow);}
// for ( x = GET_BUTTON_RECT_X(pLayout, bt); x < GET_BUTTON_RECT_X(pLayout, bt)+bt->comprect.w - 1; x++ )// { // buffer[(y * next_layer->width + x)* src_byte_per_pixel] = ~buffer[(y * next_layer->width + x)* src_byte_per_pixel];// buffer[(y * next_layer->width + x)* src_byte_per_pixel + 1] = ~buffer[(y * next_layer->width + x)* src_byte_per_pixel + 1];// } InvertActiveLayer(); } }转载地址:http://luifb.baihongyu.com/