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

Side by Side Diff: Source/platform/graphics/Canvas2DLayerBridge.h

Issue 562583002: Implement image-rendering:pixelated for accelerated 2D canvases. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Don't call setImageInterpolationQuality Created 6 years 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 (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google 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 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 68
69 // ImageBufferSurface implementation 69 // ImageBufferSurface implementation
70 void finalizeFrame(const FloatRect &dirtyRect); 70 void finalizeFrame(const FloatRect &dirtyRect);
71 void willAccessPixels(); 71 void willAccessPixels();
72 SkCanvas* canvas() const { return m_canvas.get(); } 72 SkCanvas* canvas() const { return m_canvas.get(); }
73 bool checkSurfaceValid(); 73 bool checkSurfaceValid();
74 bool restoreSurface(); 74 bool restoreSurface();
75 WebLayer* layer() const; 75 WebLayer* layer() const;
76 Platform3DObject getBackingTexture(); 76 Platform3DObject getBackingTexture();
77 bool isAccelerated() const { return true; } 77 bool isAccelerated() const { return true; }
78 void setFilterLevel(SkPaint::FilterLevel);
78 void setIsHidden(bool); 79 void setIsHidden(bool);
79 void setImageBuffer(ImageBuffer* imageBuffer) { m_imageBuffer = imageBuffer; } 80 void setImageBuffer(ImageBuffer* imageBuffer) { m_imageBuffer = imageBuffer; }
80 81
81 // Methods used by Canvas2DLayerManager 82 // Methods used by Canvas2DLayerManager
82 virtual size_t freeMemoryIfPossible(size_t); // virtual for mocking 83 virtual size_t freeMemoryIfPossible(size_t); // virtual for mocking
83 virtual void flush(); // virtual for mocking 84 virtual void flush(); // virtual for mocking
84 virtual size_t storageAllocatedForRecording(); // virtual for faking 85 virtual size_t storageAllocatedForRecording(); // virtual for faking
85 size_t bytesAllocated() const { return m_bytesAllocated; } 86 size_t bytesAllocated() const { return m_bytesAllocated; }
86 void limitPendingFrames(); 87 void limitPendingFrames();
87 void freeTransientResources(); 88 void freeTransientResources();
(...skipping 15 matching lines...) Expand all
103 OwnPtr<WebGraphicsContext3DProvider> m_contextProvider; 104 OwnPtr<WebGraphicsContext3DProvider> m_contextProvider;
104 ImageBuffer* m_imageBuffer; 105 ImageBuffer* m_imageBuffer;
105 int m_msaaSampleCount; 106 int m_msaaSampleCount;
106 size_t m_bytesAllocated; 107 size_t m_bytesAllocated;
107 bool m_didRecordDrawCommand; 108 bool m_didRecordDrawCommand;
108 bool m_isSurfaceValid; 109 bool m_isSurfaceValid;
109 int m_framesPending; 110 int m_framesPending;
110 int m_framesSinceMailboxRelease; 111 int m_framesSinceMailboxRelease;
111 bool m_destructionInProgress; 112 bool m_destructionInProgress;
112 bool m_rateLimitingEnabled; 113 bool m_rateLimitingEnabled;
114 SkPaint::FilterLevel m_filterLevel;
113 bool m_isHidden; 115 bool m_isHidden;
114 116
115 friend class WTF::DoublyLinkedListNode<Canvas2DLayerBridge>; 117 friend class WTF::DoublyLinkedListNode<Canvas2DLayerBridge>;
116 friend class ::Canvas2DLayerBridgeTest; 118 friend class ::Canvas2DLayerBridgeTest;
117 Canvas2DLayerBridge* m_next; 119 Canvas2DLayerBridge* m_next;
118 Canvas2DLayerBridge* m_prev; 120 Canvas2DLayerBridge* m_prev;
119 121
120 struct MailboxInfo { 122 struct MailboxInfo {
121 WebExternalTextureMailbox m_mailbox; 123 WebExternalTextureMailbox m_mailbox;
122 RefPtr<SkImage> m_image; 124 RefPtr<SkImage> m_image;
123 RefPtr<Canvas2DLayerBridge> m_parentLayerBridge; 125 RefPtr<Canvas2DLayerBridge> m_parentLayerBridge;
124 126
125 MailboxInfo(const MailboxInfo&); 127 MailboxInfo(const MailboxInfo&);
126 MailboxInfo() {} 128 MailboxInfo() {}
127 }; 129 };
128 130
129 uint32_t m_lastImageId; 131 uint32_t m_lastImageId;
130 132
131 enum { 133 enum {
132 // We should normally not have more that two active mailboxes at a time, 134 // We should normally not have more that two active mailboxes at a time,
133 // but sometime we may have three due to the async nature of mailbox han dling. 135 // but sometime we may have three due to the async nature of mailbox han dling.
134 MaxActiveMailboxes = 3, 136 MaxActiveMailboxes = 3,
135 }; 137 };
136 138
137 Deque<MailboxInfo, MaxActiveMailboxes> m_mailboxes; 139 Deque<MailboxInfo, MaxActiveMailboxes> m_mailboxes;
140 GLenum m_lastFilter;
138 OpacityMode m_opacityMode; 141 OpacityMode m_opacityMode;
139 }; 142 };
140 143
141 } // namespace blink 144 } // namespace blink
142 145
143 #endif 146 #endif
OLDNEW
« no previous file with comments | « Source/platform/graphics/Canvas2DImageBufferSurface.h ('k') | Source/platform/graphics/Canvas2DLayerBridge.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698