mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
61 lines
2.0 KiB
C++
61 lines
2.0 KiB
C++
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "mojo/gpu/texture_uploader.h"
|
|
|
|
#include "base/bind.h"
|
|
#include "base/message_loop/message_loop.h"
|
|
#include "mojo/gpu/texture_cache.h"
|
|
#include "mojo/public/cpp/application/application_impl.h"
|
|
#include "mojo/public/cpp/application/application_test_base.h"
|
|
#include "mojo/public/cpp/application/connect.h"
|
|
#include "mojo/services/surfaces/public/interfaces/surface_id.mojom.h"
|
|
#include "testing/gtest/include/gtest/gtest.h"
|
|
|
|
namespace {
|
|
|
|
class TextureUploaderTest : public mojo::test::ApplicationTestBase {
|
|
public:
|
|
TextureUploaderTest() : surface_id_(1u), weak_factory_(this) {}
|
|
~TextureUploaderTest() override {}
|
|
|
|
void SetUp() override {
|
|
mojo::test::ApplicationTestBase::SetUp();
|
|
|
|
mojo::ServiceProviderPtr surfaces_service_provider;
|
|
application_impl()->shell()->ConnectToApplication(
|
|
"mojo:surfaces_service", mojo::GetProxy(&surfaces_service_provider),
|
|
nullptr);
|
|
mojo::ConnectToService(surfaces_service_provider.get(), &surface_);
|
|
gl_context_ = mojo::GLContext::Create(application_impl()->shell());
|
|
surface_->CreateSurface(surface_id_);
|
|
texture_cache_.reset(new mojo::TextureCache(gl_context_, nullptr));
|
|
}
|
|
|
|
void OnFrameCompleteExit() { base::MessageLoop::current()->Quit(); }
|
|
|
|
protected:
|
|
uint32_t surface_id_;
|
|
base::WeakPtr<mojo::GLContext> gl_context_;
|
|
scoped_ptr<mojo::TextureCache> texture_cache_;
|
|
mojo::SurfacePtr surface_;
|
|
base::WeakPtrFactory<TextureUploaderTest> weak_factory_;
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(TextureUploaderTest);
|
|
};
|
|
|
|
TEST_F(TextureUploaderTest, Base) {
|
|
mojo::Size size;
|
|
size.width = 100;
|
|
size.height = 100;
|
|
scoped_ptr<mojo::TextureCache::TextureInfo> texture_info(
|
|
texture_cache_->GetTexture(size).Pass());
|
|
mojo::FramePtr frame = mojo::TextureUploader::GetUploadFrame(
|
|
gl_context_, texture_info->ResourceId(), texture_info->Texture());
|
|
EXPECT_FALSE(frame.is_null());
|
|
}
|
|
|
|
} // namespace
|