Home | History | Annotate | Download | only in skc
      1 /*
      2  * Copyright 2017 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can
      5  * be found in the LICENSE file.
      6  *
      7  */
      8 
      9 #ifndef SKC_ONCE_SKC_STYLING
     10 #define SKC_ONCE_SKC_STYLING
     11 
     12 //
     13 // STYLING COMMANDS
     14 //
     15 // FIXME -- THESE ARE PLATFORM "CAPABILITIES" AND PRESENCE OF ANY
     16 // EXOTIC NON-CORE COMMANDS SHOULD BE DETERMINED AT RUNTIME
     17 //
     18 
     19 typedef enum skc_styling_opcode_e {
     20 
     21   SKC_STYLING_OPCODE_NOOP,
     22 
     23   SKC_STYLING_OPCODE_COVER_NONZERO,
     24   SKC_STYLING_OPCODE_COVER_EVENODD,
     25   SKC_STYLING_OPCODE_COVER_ACCUMULATE,
     26   SKC_STYLING_OPCODE_COVER_MASK,
     27 
     28   SKC_STYLING_OPCODE_COVER_WIP_ZERO,
     29   SKC_STYLING_OPCODE_COVER_ACC_ZERO,
     30   SKC_STYLING_OPCODE_COVER_MASK_ZERO,
     31   SKC_STYLING_OPCODE_COVER_MASK_ONE,
     32   SKC_STYLING_OPCODE_COVER_MASK_INVERT,
     33 
     34   SKC_STYLING_OPCODE_COLOR_FILL_SOLID,
     35   SKC_STYLING_OPCODE_COLOR_FILL_GRADIENT_LINEAR,
     36 
     37   SKC_STYLING_OPCODE_COLOR_WIP_ZERO,
     38   SKC_STYLING_OPCODE_COLOR_ACC_ZERO,
     39 
     40   SKC_STYLING_OPCODE_BLEND_OVER,
     41   SKC_STYLING_OPCODE_BLEND_PLUS,
     42   SKC_STYLING_OPCODE_BLEND_MULTIPLY,
     43   SKC_STYLING_OPCODE_BLEND_KNOCKOUT,
     44 
     45   SKC_STYLING_OPCODE_COVER_WIP_MOVE_TO_MASK,
     46   SKC_STYLING_OPCODE_COVER_ACC_MOVE_TO_MASK,
     47 
     48   SKC_STYLING_OPCODE_BACKGROUND_OVER,
     49 
     50   SKC_STYLING_OPCODE_SURFACE_COMPOSITE,
     51 
     52   SKC_STYLING_OPCODE_COLOR_ACC_TEST_OPACITY,
     53 
     54   //
     55   //
     56   //
     57 
     58   SKC_STYLING_OPCODE_COUNT,
     59 
     60   //
     61   //
     62   //
     63 
     64   SKC_STYLING_OPCODE_IS_FINAL = 0x80000000
     65 
     66 } skc_styling_opcode_e;
     67 
     68 //
     69 //
     70 //
     71 
     72 typedef enum skc_styling_gradient_type_e {
     73 
     74   SKC_STYLING_GRADIENT_TYPE_LINEAR_NON_REPEATING,
     75   SKC_STYLING_GRADIENT_TYPE_LINEAR_REPEATING,
     76   SKC_STYLING_GRADIENT_TYPE_LINEAR_REFLECTING,
     77 
     78   SKC_STYLING_GRADIENT_TYPE_COUNT
     79 
     80 } skc_styling_gradient_type_e;
     81 
     82 //
     83 // FIXME -- bury all of this once we stabilize styling
     84 //
     85 
     86 #define SKC_STYLING_CMDS(...) _countof(__VA_ARGS__),__VA_ARGS__
     87 #define SKC_GROUP_IDS(...)    _countof(__VA_ARGS__),__VA_ARGS__
     88 
     89 //
     90 //
     91 //
     92 
     93 #endif
     94 
     95 //
     96 //
     97 //
     98