Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: experimental/skpdiff/SkCLImageDiffer.h

Issue 19608005: move skpdiff into tools (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « experimental/skpdiff/README ('k') | experimental/skpdiff/SkCLImageDiffer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2013 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 #ifndef SkCLImageDiffer_DEFINED
9 #define SkCLImageDiffer_DEFINED
10
11 #if SK_BUILD_FOR_MAC
12 # include <OpenCL/cl.h>
13 #else
14 # include <CL/cl.h>
15 #endif
16 #include "SkTDArray.h"
17
18 #include "SkImageDiffer.h"
19
20 class SkStream;
21
22 /**
23 * An SkImageDiffer that requires initialization with an OpenCL device and conte xt.
24 */
25 class SkCLImageDiffer : public SkImageDiffer {
26 public:
27 SkCLImageDiffer();
28
29 virtual bool requiresOpenCL() SK_OVERRIDE { return true; }
30
31 /**
32 * Initializes the OpenCL resources this differ needs to work
33 * @param device An OpenCL device
34 * @param context An OpenCL context of the given device
35 * @return True on success, false otherwise
36 */
37 virtual bool init(cl_device_id device, cl_context context);
38
39 protected:
40 /**
41 * Called by init after fDevice, fContext, and fCommandQueue are successfull y initialized
42 * @return True on success, false otherwise
43 */
44 virtual bool onInit() = 0;
45
46 /**
47 * Loads an OpenCL kernel from the file with the given named entry point. Th is only works after
48 * init is called.
49 * @param file The file path of the kernel
50 * @param name The name of the entry point of the desired kernel in the f ile
51 * @param kernel A pointer to return the loaded kernel into
52 * @return True on success, false otherwise
53 */
54 bool loadKernelFile(const char file[], const char name[], cl_kernel* kernel) ;
55
56 /**
57 * Loads an OpenCL kernel from the stream with the given named entry point. This only works
58 * after init is called.
59 * @param stream The stream that contains the kernel
60 * @param name The name of the entry point of the desired kernel in the stream
61 * @param kernel A pointer to return the loaded kernel into
62 * @return True on success, false otherwise
63 */
64 bool loadKernelStream(SkStream* stream, const char name[], cl_kernel* kernel );
65
66 /**
67 * Loads an OpenCL kernel from the source string with the given named entry point. This only
68 * works after init is called.
69 * @param source The string that contains the kernel
70 * @param name The name of the entry point of the desired kernel in the source string
71 * @param kernel A pointer to return the loaded kernel into
72 * @return True on success, false otherwise
73 */
74 bool loadKernelSource(const char source[], const char name[], cl_kernel* ker nel);
75
76 /**
77 * Loads a read only copy of the given bitmap into device memory and returns the block of
78 * memory. This only works after init is called.
79 * @param bitmap The bitmap to load into memory
80 * @param image A pointer to return the allocated image to
81 * @return True on success, false otherwise
82 */
83 bool makeImage2D(SkBitmap* bitmap, cl_mem* image);
84
85 cl_device_id fDevice;
86 cl_context fContext;
87 cl_command_queue fCommandQueue;
88
89 private:
90
91 typedef SkImageDiffer INHERITED;
92 };
93
94 #endif
OLDNEW
« no previous file with comments | « experimental/skpdiff/README ('k') | experimental/skpdiff/SkCLImageDiffer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698