1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_RESOURCES_RESOURCE_H_
6 #define CC_RESOURCES_RESOURCE_H_
8 #include "cc/base/cc_export.h"
9 #include "cc/resources/resource_provider.h"
10 #include "ui/gfx/geometry/size.h"
14 class CC_EXPORT Resource
{
16 Resource() : id_(0) {}
17 Resource(unsigned id
, const gfx::Size
& size
, ResourceFormat format
)
22 ResourceProvider::ResourceId
id() const { return id_
; }
23 gfx::Size
size() const { return size_
; }
24 ResourceFormat
format() const { return format_
; }
27 inline static size_t MemorySizeBytes(const gfx::Size
& size
,
28 ResourceFormat format
) {
29 DCHECK_EQ(0u, (BitsPerPixel(format
) * size
.width() * size
.height()) % 8);
30 return (BitsPerPixel(format
) * size
.width() * size
.height()) / 8;
34 void set_id(ResourceProvider::ResourceId id
) { id_
= id
; }
35 void set_dimensions(const gfx::Size
& size
, ResourceFormat format
) {
41 ResourceProvider::ResourceId id_
;
43 ResourceFormat format_
;
45 DISALLOW_COPY_AND_ASSIGN(Resource
);
50 #endif // CC_RESOURCES_RESOURCE_H_