• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "src/core/SkOpts.h"
9 
10 #if !defined(SK_ENABLE_OPTIMIZE_SIZE)
11 
12 #define SK_OPTS_NS hsw
13 #include "src/core/SkCubicSolver.h"
14 #include "src/opts/SkBitmapProcState_opts.h"
15 #include "src/opts/SkBlitRow_opts.h"
16 #include "src/opts/SkRasterPipeline_opts.h"
17 #include "src/opts/SkSwizzler_opts.h"
18 #include "src/opts/SkUtils_opts.h"
19 #include "src/opts/SkVM_opts.h"
20 
21 namespace SkOpts {
Init_hsw()22     void Init_hsw() {
23         blit_row_color32     = hsw::blit_row_color32;
24         blit_row_s32a_opaque = hsw::blit_row_s32a_opaque;
25 
26         S32_alpha_D32_filter_DX  = hsw::S32_alpha_D32_filter_DX;
27 
28         cubic_solver = SK_OPTS_NS::cubic_solver;
29 
30         RGBA_to_BGRA          = SK_OPTS_NS::RGBA_to_BGRA;
31         RGBA_to_rgbA          = SK_OPTS_NS::RGBA_to_rgbA;
32         RGBA_to_bgrA          = SK_OPTS_NS::RGBA_to_bgrA;
33         gray_to_RGB1          = SK_OPTS_NS::gray_to_RGB1;
34         grayA_to_RGBA         = SK_OPTS_NS::grayA_to_RGBA;
35         grayA_to_rgbA         = SK_OPTS_NS::grayA_to_rgbA;
36         inverted_CMYK_to_RGB1 = SK_OPTS_NS::inverted_CMYK_to_RGB1;
37         inverted_CMYK_to_BGR1 = SK_OPTS_NS::inverted_CMYK_to_BGR1;
38 
39         raster_pipeline_lowp_stride  = SK_OPTS_NS::raster_pipeline_lowp_stride();
40         raster_pipeline_highp_stride = SK_OPTS_NS::raster_pipeline_highp_stride();
41 
42     #define M(st) ops_highp[(int)SkRasterPipelineOp::st] = (StageFn)SK_OPTS_NS::st;
43         SK_RASTER_PIPELINE_OPS_ALL(M)
44         just_return_highp = (StageFn)SK_OPTS_NS::just_return;
45         start_pipeline_highp = SK_OPTS_NS::start_pipeline;
46     #undef M
47 
48     #define M(st) ops_lowp[(int)SkRasterPipelineOp::st] = (StageFn)SK_OPTS_NS::lowp::st;
49         SK_RASTER_PIPELINE_OPS_LOWP(M)
50         just_return_lowp = (StageFn)SK_OPTS_NS::lowp::just_return;
51         start_pipeline_lowp = SK_OPTS_NS::lowp::start_pipeline;
52     #undef M
53 
54         interpret_skvm = SK_OPTS_NS::interpret_skvm;
55     }
56 }  // namespace SkOpts
57 
58 #endif // SK_ENABLE_OPTIMIZE_SIZE
59