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

Side by Side Diff: include/gpu/GrSurface.h

Issue 1249543003: Creating functions for uploading a mipmapped texture. (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: Removing the concept of a dirty mipmap. It is expected that the texture upload provides the mipmaps. Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #ifndef GrSurface_DEFINED 9 #ifndef GrSurface_DEFINED
10 #define GrSurface_DEFINED 10 #define GrSurface_DEFINED
11 11
12 #include "GrTypes.h" 12 #include "GrTypes.h"
13 #include "GrGpuResource.h" 13 #include "GrGpuResource.h"
14 #include "SkImageInfo.h" 14 #include "SkImageInfo.h"
15 #include "SkMipMapLevel.h"
15 #include "SkRect.h" 16 #include "SkRect.h"
17 #include "SkTArray.h"
16 18
17 class GrRenderTarget; 19 class GrRenderTarget;
18 class GrSurfacePriv; 20 class GrSurfacePriv;
19 class GrTexture; 21 class GrTexture;
20 22
21 class SK_API GrSurface : public GrGpuResource { 23 class SK_API GrSurface : public GrGpuResource {
22 public: 24 public:
23 /** 25 /**
24 * Retrieves the width of the surface. 26 * Retrieves the width of the surface.
25 */ 27 */
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 uint32_t pixelOpsFlags = 0); 90 uint32_t pixelOpsFlags = 0);
89 91
90 /** 92 /**
91 * Copy the src pixels [buffer, rowbytes, pixelconfig] into the surface at t he specified 93 * Copy the src pixels [buffer, rowbytes, pixelconfig] into the surface at t he specified
92 * rectangle. 94 * rectangle.
93 * @param left left edge of the rectangle to write (inclusive) 95 * @param left left edge of the rectangle to write (inclusive)
94 * @param top top edge of the rectangle to write (inclusive) 96 * @param top top edge of the rectangle to write (inclusive)
95 * @param width width of rectangle to write in pixels. 97 * @param width width of rectangle to write in pixels.
96 * @param height height of rectangle to write in pixels. 98 * @param height height of rectangle to write in pixels.
97 * @param config the pixel config of the source buffer 99 * @param config the pixel config of the source buffer
98 * @param buffer memory to read the rectangle from. 100 * @param texels array of mipmap levels containing texel data to load .
99 * @param rowBytes number of bytes between consecutive rows. Zero means rows are tightly 101 * Begins with full-size palette data for paletted text ures.
100 * packed. 102 * For compressed formats it contains the compressed pi xel data.
103 * Otherwise, it contains width*height texels. If there is only one
104 * element and it contains nullptr fTexels, texture dat a is
105 * uninitialized.
101 * @param pixelOpsFlags See the GrContext::PixelOpsFlags enum. 106 * @param pixelOpsFlags See the GrContext::PixelOpsFlags enum.
102 * 107 *
103 * @return true if the read succeeded, false if not. The read can fail becau se of an unsupported 108 * @return true if the read succeeded, false if not. The read can fail becau se of an unsupported
104 * pixel config. 109 * pixel config.
105 */ 110 */
106 bool writePixels(int left, int top, int width, int height, 111 bool writePixels(int left, int top, int width, int height,
107 GrPixelConfig config, 112 GrPixelConfig config,
113 const SkTArray<SkMipMapLevel>& texels,
114 uint32_t pixelOpsFlags = 0);
115
116 /**
117 * This function is a shim which creates a SkTArray<SkMipMapLevel> of size 1 .
118 * It then calls writePixels() with that SkTArray.
119 * This is so older code which currently uses this function signature will
bsalomon 2015/09/15 13:14:10 I'd take off the thing about older code. I expect
cblume 2015/09/16 18:40:46 I've updated all the shim comments. :)
120 * continue to work.
121 */
122 bool writePixels(int left, int top, int width, int height,
123 GrPixelConfig config,
108 const void* buffer, 124 const void* buffer,
109 size_t rowBytes = 0, 125 size_t rowBytes = 0,
110 uint32_t pixelOpsFlags = 0); 126 uint32_t pixelOpsFlags = 0);
111 127
112 /** 128 /**
113 * After this returns any pending writes to the surface will be issued to th e backend 3D API. 129 * After this returns any pending writes to the surface will be issued to th e backend 3D API.
114 */ 130 */
115 void flushWrites(); 131 void flushWrites();
116 132
117 133
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 } 187 }
172 } 188 }
173 189
174 ReleaseProc fReleaseProc; 190 ReleaseProc fReleaseProc;
175 ReleaseCtx fReleaseCtx; 191 ReleaseCtx fReleaseCtx;
176 192
177 typedef GrGpuResource INHERITED; 193 typedef GrGpuResource INHERITED;
178 }; 194 };
179 195
180 #endif 196 #endif
OLDNEW
« no previous file with comments | « include/gpu/GrContext.h ('k') | include/gpu/GrTexture.h » ('j') | include/gpu/GrTexture.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698