Code optimieren - Buffer reseten
-
Hallo zusammen,
mit folgendem Beispiel möchte ich einen Raster-Buffer ab einer gewissen Speicherstelle bis zum Ende hin auf '0' setzen/löschen. Mit der Version 2 habe ich über Pointer-Zuweisung schon schnellere Ergebnisse bekommen, aber das ist mir immer noch zu langsam. Gibt's da noch eine Möglichkeit der Codeoptimierung ?
BYTE BMP_Black[36256], BMP_Cyan[36256]; unsigned int loop, row_byte_C, row_byte_K, ymax; unsigned char *pBuffer = 0; // Reset rest of buffer line // 1. Version switch( color ) { case Black: loop = row_byte_K; for ( ; loop < ymax; loop++ ) {BMP_Black[loop] = 0x00;} break; case Cyan: loop = row_byte_C; for ( ; loop < ymax; loop++ ) {BMP_Cyan[loop] = 0x00;} break; ...... } // Reset rest of buffer line // 2. Version switch( color ) { case Black: loop = row_byte_K; pBuffer = &BMP_Black[loop]; for ( ; loop < ymax; loop++ ) {*pBuffer++ = 0x00;} break; case Cyan: loop = row_byte_C; pBuffer = &BMP_Cyan[loop]; for ( ; loop < ymax; loop++ ) {*pBuffer++ = 0x00;} break; ...... }
Danke und Gruß
WoWe
-
ich würde memset benutzen anstelle einer Schleife.