Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/resources/texture_uploader.h" | 5 #include "cc/resources/texture_uploader.h" |
| 6 | 6 |
| 7 #include "cc/base/util.h" | 7 #include "cc/base/util.h" |
| 8 #include "cc/resources/prioritized_resource.h" | 8 #include "cc/resources/prioritized_resource.h" |
| 9 #include "gpu/command_buffer/client/gles2_interface_stub.h" | 9 #include "gpu/command_buffer/client/gles2_interface_stub.h" |
| 10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 108 case GL_LUMINANCE: | 108 case GL_LUMINANCE: |
| 109 EXPECT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); | 109 EXPECT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); |
| 110 bytes_per_pixel = 1; | 110 bytes_per_pixel = 1; |
| 111 break; | 111 break; |
| 112 case GL_LUMINANCE_ALPHA: | 112 case GL_LUMINANCE_ALPHA: |
| 113 EXPECT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); | 113 EXPECT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); |
| 114 bytes_per_pixel = 2; | 114 bytes_per_pixel = 2; |
| 115 break; | 115 break; |
| 116 } | 116 } |
| 117 | 117 |
| 118 // If NULL, we aren't checking texture contents. | 118 // If nullptr, we aren't checking texture contents. |
|
danakj
2014/10/10 17:28:46
just use null
| |
| 119 if (pixels == NULL) | 119 if (pixels == nullptr) |
| 120 return; | 120 return; |
| 121 | 121 |
| 122 const uint8* bytes = static_cast<const uint8*>(pixels); | 122 const uint8* bytes = static_cast<const uint8*>(pixels); |
| 123 // We'll expect the first byte of every row to be 0x1, and the last byte to | 123 // We'll expect the first byte of every row to be 0x1, and the last byte to |
| 124 // be 0x2. | 124 // be 0x2. |
| 125 const unsigned int stride = | 125 const unsigned int stride = |
| 126 RoundUp(bytes_per_pixel * width, unpack_alignment_); | 126 RoundUp(bytes_per_pixel * width, unpack_alignment_); |
| 127 for (GLsizei row = 0; row < height; ++row) { | 127 for (GLsizei row = 0; row < height; ++row) { |
| 128 const uint8* row_bytes = | 128 const uint8* row_bytes = |
| 129 bytes + (xoffset * bytes_per_pixel + (yoffset + row) * stride); | 129 bytes + (xoffset * bytes_per_pixel + (yoffset + row) * stride); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 150 uploader->Upload( | 150 uploader->Upload( |
| 151 data, gfx::Rect(size), gfx::Rect(size), gfx::Vector2d(), format, size); | 151 data, gfx::Rect(size), gfx::Rect(size), gfx::Vector2d(), format, size); |
| 152 } | 152 } |
| 153 | 153 |
| 154 TEST(TextureUploaderTest, NumBlockingUploads) { | 154 TEST(TextureUploaderTest, NumBlockingUploads) { |
| 155 TextureUploadTestContext context; | 155 TextureUploadTestContext context; |
| 156 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); | 156 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); |
| 157 | 157 |
| 158 context.SetResultAvailable(0); | 158 context.SetResultAvailable(0); |
| 159 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 159 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 160 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 160 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 161 EXPECT_EQ(1u, uploader->NumBlockingUploads()); | 161 EXPECT_EQ(1u, uploader->NumBlockingUploads()); |
| 162 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 162 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 163 EXPECT_EQ(2u, uploader->NumBlockingUploads()); | 163 EXPECT_EQ(2u, uploader->NumBlockingUploads()); |
| 164 | 164 |
| 165 context.SetResultAvailable(1); | 165 context.SetResultAvailable(1); |
| 166 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 166 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 167 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 167 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 168 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 168 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 169 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 169 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 170 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 170 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 171 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 171 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 172 } | 172 } |
| 173 | 173 |
| 174 TEST(TextureUploaderTest, MarkPendingUploadsAsNonBlocking) { | 174 TEST(TextureUploaderTest, MarkPendingUploadsAsNonBlocking) { |
| 175 TextureUploadTestContext context; | 175 TextureUploadTestContext context; |
| 176 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); | 176 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); |
| 177 | 177 |
| 178 context.SetResultAvailable(0); | 178 context.SetResultAvailable(0); |
| 179 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 179 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 180 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 180 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 181 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 181 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 182 EXPECT_EQ(2u, uploader->NumBlockingUploads()); | 182 EXPECT_EQ(2u, uploader->NumBlockingUploads()); |
| 183 | 183 |
| 184 uploader->MarkPendingUploadsAsNonBlocking(); | 184 uploader->MarkPendingUploadsAsNonBlocking(); |
| 185 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 185 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 186 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 186 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 187 EXPECT_EQ(1u, uploader->NumBlockingUploads()); | 187 EXPECT_EQ(1u, uploader->NumBlockingUploads()); |
| 188 | 188 |
| 189 context.SetResultAvailable(1); | 189 context.SetResultAvailable(1); |
| 190 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 190 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 191 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), NULL); | 191 UploadTexture(uploader.get(), RGBA_8888, gfx::Size(), nullptr); |
| 192 uploader->MarkPendingUploadsAsNonBlocking(); | 192 uploader->MarkPendingUploadsAsNonBlocking(); |
| 193 EXPECT_EQ(0u, uploader->NumBlockingUploads()); | 193 EXPECT_EQ(0u, uploader->NumBlockingUploads()); |
| 194 } | 194 } |
| 195 | 195 |
| 196 TEST(TextureUploaderTest, UploadContentsTest) { | 196 TEST(TextureUploaderTest, UploadContentsTest) { |
| 197 TextureUploadTestContext context; | 197 TextureUploadTestContext context; |
| 198 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); | 198 scoped_ptr<TextureUploader> uploader = TextureUploader::Create(&context); |
| 199 | 199 |
| 200 uint8 buffer[256 * 256 * 4]; | 200 uint8 buffer[256 * 256 * 4]; |
| 201 | 201 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 231 for (int i = 0; i < 86; ++i) { | 231 for (int i = 0; i < 86; ++i) { |
| 232 // Mark the beginning and end of each row, for the test. | 232 // Mark the beginning and end of each row, for the test. |
| 233 buffer[i * 1 * 82] = 0x1; | 233 buffer[i * 1 * 82] = 0x1; |
| 234 buffer[(i + 1) * 82 - 1] = 0x2; | 234 buffer[(i + 1) * 82 - 1] = 0x2; |
| 235 } | 235 } |
| 236 UploadTexture(uploader.get(), LUMINANCE_8, gfx::Size(82, 86), buffer); | 236 UploadTexture(uploader.get(), LUMINANCE_8, gfx::Size(82, 86), buffer); |
| 237 } | 237 } |
| 238 | 238 |
| 239 } // namespace | 239 } // namespace |
| 240 } // namespace cc | 240 } // namespace cc |
| OLD | NEW |