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

Side by Side Diff: Source/core/css/CSSImageGeneratorValue.h

Issue 899163003: Move rendering/RenderObject to layout/LayoutObject. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 | « Source/core/css/CSSGradientValue.cpp ('k') | Source/core/css/CSSImageGeneratorValue.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 17 matching lines...) Expand all
28 28
29 #include "core/css/CSSValue.h" 29 #include "core/css/CSSValue.h"
30 #include "platform/geometry/IntSizeHash.h" 30 #include "platform/geometry/IntSizeHash.h"
31 #include "wtf/HashCountedSet.h" 31 #include "wtf/HashCountedSet.h"
32 #include "wtf/RefPtr.h" 32 #include "wtf/RefPtr.h"
33 33
34 namespace blink { 34 namespace blink {
35 35
36 class ResourceFetcher; 36 class ResourceFetcher;
37 class Image; 37 class Image;
38 class RenderObject; 38 class LayoutObject;
39 39
40 struct SizeAndCount { 40 struct SizeAndCount {
41 SizeAndCount(IntSize newSize = IntSize(), int newCount = 0) 41 SizeAndCount(IntSize newSize = IntSize(), int newCount = 0)
42 : size(newSize) 42 : size(newSize)
43 , count(newCount) 43 , count(newCount)
44 { 44 {
45 } 45 }
46 46
47 IntSize size; 47 IntSize size;
48 int count; 48 int count;
49 }; 49 };
50 50
51 typedef HashMap<const RenderObject*, SizeAndCount> RenderObjectSizeCountMap; 51 typedef HashMap<const LayoutObject*, SizeAndCount> LayoutObjectSizeCountMap;
52 52
53 class CSSImageGeneratorValue : public CSSValue { 53 class CSSImageGeneratorValue : public CSSValue {
54 public: 54 public:
55 ~CSSImageGeneratorValue(); 55 ~CSSImageGeneratorValue();
56 56
57 void addClient(RenderObject*, const IntSize&); 57 void addClient(LayoutObject*, const IntSize&);
58 void removeClient(RenderObject*); 58 void removeClient(LayoutObject*);
59 PassRefPtr<Image> image(RenderObject*, const IntSize&); 59 PassRefPtr<Image> image(LayoutObject*, const IntSize&);
60 60
61 bool isFixedSize() const; 61 bool isFixedSize() const;
62 IntSize fixedSize(const RenderObject*); 62 IntSize fixedSize(const LayoutObject*);
63 63
64 bool isPending() const; 64 bool isPending() const;
65 bool knownToBeOpaque(const RenderObject*) const; 65 bool knownToBeOpaque(const LayoutObject*) const;
66 66
67 void loadSubimages(ResourceFetcher*); 67 void loadSubimages(ResourceFetcher*);
68 68
69 void traceAfterDispatch(Visitor* visitor) { CSSValue::traceAfterDispatch(vis itor); } 69 void traceAfterDispatch(Visitor* visitor) { CSSValue::traceAfterDispatch(vis itor); }
70 70
71 protected: 71 protected:
72 explicit CSSImageGeneratorValue(ClassType); 72 explicit CSSImageGeneratorValue(ClassType);
73 73
74 Image* getImage(RenderObject*, const IntSize&); 74 Image* getImage(LayoutObject*, const IntSize&);
75 void putImage(const IntSize&, PassRefPtr<Image>); 75 void putImage(const IntSize&, PassRefPtr<Image>);
76 const RenderObjectSizeCountMap& clients() const { return m_clients; } 76 const LayoutObjectSizeCountMap& clients() const { return m_clients; }
77 77
78 HashCountedSet<IntSize> m_sizes; // A count of how many times a given image size is in use. 78 HashCountedSet<IntSize> m_sizes; // A count of how many times a given image size is in use.
79 RenderObjectSizeCountMap m_clients; // A map from RenderObjects (with entry count) to image sizes. 79 LayoutObjectSizeCountMap m_clients; // A map from LayoutObjects (with entry count) to image sizes.
80 HashMap<IntSize, RefPtr<Image> > m_images; // A cache of Image objects by im age size. 80 HashMap<IntSize, RefPtr<Image> > m_images; // A cache of Image objects by im age size.
81 81
82 #if ENABLE(OILPAN) 82 #if ENABLE(OILPAN)
83 // FIXME: Oilpan: when/if we can make the renderer point directly to the CSS ImageGenerator value using 83 // FIXME: Oilpan: when/if we can make the renderer point directly to the CSS ImageGenerator value using
84 // a member we don't need to have this hack where we keep a persistent to th e instance as long as 84 // a member we don't need to have this hack where we keep a persistent to th e instance as long as
85 // there are clients in the RenderObjectSizeCountMap. 85 // there are clients in the LayoutObjectSizeCountMap.
86 GC_PLUGIN_IGNORE("366546") 86 GC_PLUGIN_IGNORE("366546")
87 OwnPtr<Persistent<CSSImageGeneratorValue> > m_keepAlive; 87 OwnPtr<Persistent<CSSImageGeneratorValue> > m_keepAlive;
88 #endif 88 #endif
89 }; 89 };
90 90
91 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageGeneratorValue, isImageGeneratorValue()); 91 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageGeneratorValue, isImageGeneratorValue());
92 92
93 } // namespace blink 93 } // namespace blink
94 94
95 #endif // CSSImageGeneratorValue_h 95 #endif // CSSImageGeneratorValue_h
OLDNEW
« no previous file with comments | « Source/core/css/CSSGradientValue.cpp ('k') | Source/core/css/CSSImageGeneratorValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698