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

Side by Side Diff: Source/WebCore/platform/graphics/chromium/RateLimiter.cpp

Issue 10201008: Merge 114475 - [chromium] Ensure RateLimiter waits for Swapbuffers completion (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1084/
Patch Set: Created 8 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 17 matching lines...) Expand all
28 #if USE(ACCELERATED_COMPOSITING) 28 #if USE(ACCELERATED_COMPOSITING)
29 29
30 #include "RateLimiter.h" 30 #include "RateLimiter.h"
31 31
32 #include "Extensions3DChromium.h" 32 #include "Extensions3DChromium.h"
33 #include "GraphicsContext3D.h" 33 #include "GraphicsContext3D.h"
34 #include "TraceEvent.h" 34 #include "TraceEvent.h"
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 PassRefPtr<RateLimiter> RateLimiter::create(GraphicsContext3D* context) 38 PassRefPtr<RateLimiter> RateLimiter::create(GraphicsContext3D* context, RateLimi terClient *client)
39 { 39 {
40 return adoptRef(new RateLimiter(context)); 40 return adoptRef(new RateLimiter(context, client));
41 } 41 }
42 42
43 RateLimiter::RateLimiter(GraphicsContext3D* context) 43 RateLimiter::RateLimiter(GraphicsContext3D* context, RateLimiterClient *client)
44 : m_context(context) 44 : m_context(context)
45 , m_timer(this, &RateLimiter::rateLimitContext) 45 , m_timer(this, &RateLimiter::rateLimitContext)
46 , m_client(client)
46 { 47 {
47 ASSERT(context); 48 ASSERT(context);
48 ASSERT(context->getExtensions()); 49 ASSERT(context->getExtensions());
49 m_contextSupportsRateLimitingExtension = context->getExtensions()->supports( "GL_CHROMIUM_rate_limit_offscreen_context"); 50 m_contextSupportsRateLimitingExtension = context->getExtensions()->supports( "GL_CHROMIUM_rate_limit_offscreen_context");
50 } 51 }
51 52
52 RateLimiter::~RateLimiter() 53 RateLimiter::~RateLimiter()
53 { 54 {
54 } 55 }
55 56
56 void RateLimiter::start() 57 void RateLimiter::start()
57 { 58 {
58 if (m_contextSupportsRateLimitingExtension && !m_timer.isActive()) 59 if (m_contextSupportsRateLimitingExtension && !m_timer.isActive())
59 m_timer.startOneShot(0); 60 m_timer.startOneShot(0);
60 } 61 }
61 62
62 void RateLimiter::stop() 63 void RateLimiter::stop()
63 { 64 {
64 m_timer.stop(); 65 m_timer.stop();
65 } 66 }
66 67
67 void RateLimiter::rateLimitContext(Timer<RateLimiter>*) 68 void RateLimiter::rateLimitContext(Timer<RateLimiter>*)
68 { 69 {
69 TRACE_EVENT("RateLimiter::rateLimitContext", this, 0); 70 TRACE_EVENT("RateLimiter::rateLimitContext", this, 0);
70 71
71 Extensions3DChromium* extensions = static_cast<Extensions3DChromium*>(m_cont ext->getExtensions()); 72 Extensions3DChromium* extensions = static_cast<Extensions3DChromium*>(m_cont ext->getExtensions());
72 73
74 m_client->rateLimit();
73 extensions->rateLimitOffscreenContextCHROMIUM(); 75 extensions->rateLimitOffscreenContextCHROMIUM();
74 } 76 }
75 77
76 } 78 }
77 #endif // USE(ACCELERATED_COMPOSITING) 79 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698