refactor(core/rendering): neteja del parser GIF i construcció de Surface (DUP-01/-06 + HC-03/-10 + PATCH-05)
- DUP-01: les tres branques del switch d'extensions que saltaven el mateix (bloc fix + sub-blocs) es substitueixen per una crida a skipExtensionBlock(); com que totes les extensions comparteixen layout, el switch desapareix i el codi es redueix a una línia. - DUP-06: el constructor Surface(file_path) llegia el fitxer dues voltes (una via loadSurface per pixels i una altra via loadPaletteFromGif per la paleta); ara carrega el buffer una sola vegada i n'extrau pixels + paleta en passades separades sobre la memòria. Surface::loadSurface passa a no existir públicament (no tenia callers externs). - HC-03: les màscares i talls màgics del decoder LZW i del Screen Descriptor passen a constants nominals (LZW_MIN/MAX_CODE_LENGTH, LZW_MASK_INITIAL, LZW_MASK_OVERFLOW, SCREEN_GCT_FLAG, SCREEN_GCT_SIZE_MASK, GCT_BYTES_PER_ENTRY). - HC-10: processImageDescriptor tenia gct i resolution_bits [[maybe_unused]] vestigials; se'n treu la signatura. L'struct RGB, que només servia per a aquests args, també s'elimina. - PATCH-05: el comentari "reemplaçar macro READ" (migració parcial des de C) passa a ser un comentari neutre sobre el que fa readBytes. Build + smoke 5s xvfb OK (exit 124). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
bbb397abb2
commit
be94a4390e
5 files changed
+78
-95
No files matched your search
@@ -23,10 +23,6 @@ namespace GIF {
|
||||
uint8_t pixel_aspect_ratio;
|
||||
};
|
||||
|
||||
struct RGB {
|
||||
uint8_t r, g, b;
|
||||
};
|
||||
|
||||
struct ImageDescriptor {
|
||||
uint16_t image_left_position;
|
||||
uint16_t image_top_position;
|
||||
@@ -61,7 +57,7 @@ namespace GIF {
|
||||
static auto readSubBlocks(const uint8_t*& buffer) -> std::vector<uint8_t>;
|
||||
|
||||
// Procesa el Image Descriptor y retorna el vector de datos sin comprimir.
|
||||
static auto processImageDescriptor(const uint8_t*& buffer, const std::vector<RGB>& gct, int resolution_bits) -> std::vector<uint8_t>;
|
||||
static auto processImageDescriptor(const uint8_t*& buffer) -> std::vector<uint8_t>;
|
||||
|
||||
// Procesa el stream completo del GIF y devuelve los datos sin comprimir.
|
||||
static auto processGifStream(const uint8_t* buffer, uint16_t& w, uint16_t& h) -> std::vector<uint8_t>;
|
||||
|
||||
Reference in new issue
Block a user