freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][master] * src/raster/ftraster.c (Draw_Sweep): U


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][master] * src/raster/ftraster.c (Draw_Sweep): Use more natural loop.
Date: Wed, 15 Nov 2023 15:17:52 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType

Commits:

  • c580926f
    by Alexei Podtelezhnikov (Алексей Подтележников) at 2023-11-15T15:17:50+00:00
    * src/raster/ftraster.c (Draw_Sweep): Use more natural loop.

1 changed file:

Changes:

  • src/raster/ftraster.c
    ... ... @@ -317,6 +317,7 @@
    317 317
     #define Flow_Up           0x08U
    
    318 318
     #define Overshoot_Top     0x10U
    
    319 319
     #define Overshoot_Bottom  0x20U
    
    320
    +#define Dropout           0x40U
    
    320 321
     
    
    321 322
     
    
    322 323
       /* States of each line, arc, and profile */
    
    ... ... @@ -2447,7 +2448,7 @@
    2447 2448
       Draw_Sweep( RAS_ARG )
    
    2448 2449
       {
    
    2449 2450
         Int           min_Y, max_Y, dropouts;
    
    2450
    -    Int           y, y_change, y_height;
    
    2451
    +    Int           y, y_turn;
    
    2451 2452
     
    
    2452 2453
         PProfile      *Q, P, P_Left, P_Right;
    
    2453 2454
     
    
    ... ... @@ -2465,12 +2466,9 @@
    2465 2466
     
    
    2466 2467
         ras.Proc_Sweep_Init( RAS_VARS min_Y, max_Y );
    
    2467 2468
     
    
    2468
    -    /* let's go, iterating through y_turns */
    
    2469
    +    /* let's go */
    
    2469 2470
     
    
    2470
    -    y        = min_Y;
    
    2471
    -    y_height = min_Y;
    
    2472
    -
    
    2473
    -    while ( ++ras.maxBuff < ras.sizeBuff )
    
    2471
    +    for ( y = min_Y; y <= max_Y; )
    
    2474 2472
         {
    
    2475 2473
           /* check waiting list for new profile activations */
    
    2476 2474
     
    
    ... ... @@ -2478,8 +2476,7 @@
    2478 2476
           while ( *Q )
    
    2479 2477
           {
    
    2480 2478
             P = *Q;
    
    2481
    -        P->start -= y_height;
    
    2482
    -        if ( P->start == 0 )
    
    2479
    +        if ( P->start == y )
    
    2483 2480
             {
    
    2484 2481
               *Q = P->link;  /* remove */
    
    2485 2482
     
    
    ... ... @@ -2492,8 +2489,7 @@
    2492 2489
               Q = &P->link;
    
    2493 2490
           }
    
    2494 2491
     
    
    2495
    -      y_change = (Int)*ras.maxBuff;
    
    2496
    -      y_height = y_change - y;
    
    2492
    +      y_turn = (Int)*++ras.maxBuff;
    
    2497 2493
     
    
    2498 2494
           do
    
    2499 2495
           {
    
    ... ... @@ -2530,7 +2526,7 @@
    2530 2526
                   P_Right->X = x2;
    
    2531 2527
     
    
    2532 2528
                   /* mark profile for drop-out processing */
    
    2533
    -              P_Left->start = -1;
    
    2529
    +              P_Left->flags |= Dropout;
    
    2534 2530
                   dropouts++;
    
    2535 2531
                 }
    
    2536 2532
               }
    
    ... ... @@ -2554,7 +2550,7 @@
    2554 2550
             Increment( &draw_left  );
    
    2555 2551
             Increment( &draw_right );
    
    2556 2552
           }
    
    2557
    -      while ( ++y < y_change );
    
    2553
    +      while ( ++y < y_turn );
    
    2558 2554
         }
    
    2559 2555
     
    
    2560 2556
         return SUCCESS;
    
    ... ... @@ -2566,9 +2562,9 @@
    2566 2562
     
    
    2567 2563
         while ( P_Left && P_Right )
    
    2568 2564
         {
    
    2569
    -      if ( P_Left->start )
    
    2565
    +      if ( P_Left->flags & Dropout )
    
    2570 2566
           {
    
    2571
    -        P_Left->start = 0;
    
    2567
    +        P_Left->flags &= ~Dropout;
    
    2572 2568
     #if 0
    
    2573 2569
             dropouts--;  /* -- this is useful when debugging only */
    
    2574 2570
     #endif
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]