| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 | 119 |
| 120 size_t WebGLRenderingContext::oldestContextIndex() | 120 size_t WebGLRenderingContext::oldestContextIndex() |
| 121 { | 121 { |
| 122 if (!activeContexts().size()) | 122 if (!activeContexts().size()) |
| 123 return maxGLActiveContexts; | 123 return maxGLActiveContexts; |
| 124 | 124 |
| 125 WebGLRenderingContext* candidate = activeContexts().first(); | 125 WebGLRenderingContext* candidate = activeContexts().first(); |
| 126 size_t candidateID = 0; | 126 size_t candidateID = 0; |
| 127 for (size_t ii = 1; ii < activeContexts().size(); ++ii) { | 127 for (size_t ii = 1; ii < activeContexts().size(); ++ii) { |
| 128 WebGLRenderingContext* context = activeContexts()[ii]; | 128 WebGLRenderingContext* context = activeContexts()[ii]; |
| 129 if (context->graphicsContext3D() && candidate->graphicsContext3D() && co
ntext->graphicsContext3D()->lastFlushID() < candidate->graphicsContext3D()->last
FlushID()) { | 129 if (context->webGraphicsContext3D() && candidate->webGraphicsContext3D()
&& context->webGraphicsContext3D()->lastFlushID() < candidate->webGraphicsConte
xt3D()->lastFlushID()) { |
| 130 candidate = context; | 130 candidate = context; |
| 131 candidateID = ii; | 131 candidateID = ii; |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 return candidateID; | 135 return candidateID; |
| 136 } | 136 } |
| 137 | 137 |
| 138 IntSize WebGLRenderingContext::oldestContextSize() | 138 IntSize WebGLRenderingContext::oldestContextSize() |
| 139 { | 139 { |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 m_contextGroup = WebGLContextGroup::create(); | 570 m_contextGroup = WebGLContextGroup::create(); |
| 571 m_contextGroup->addContext(this); | 571 m_contextGroup->addContext(this); |
| 572 | 572 |
| 573 m_maxViewportDims[0] = m_maxViewportDims[1] = 0; | 573 m_maxViewportDims[0] = m_maxViewportDims[1] = 0; |
| 574 m_context->getIntegerv(GL_MAX_VIEWPORT_DIMS, m_maxViewportDims); | 574 m_context->getIntegerv(GL_MAX_VIEWPORT_DIMS, m_maxViewportDims); |
| 575 | 575 |
| 576 RefPtr<WebGLRenderingContextEvictionManager> contextEvictionManager = adoptR
ef(new WebGLRenderingContextEvictionManager()); | 576 RefPtr<WebGLRenderingContextEvictionManager> contextEvictionManager = adoptR
ef(new WebGLRenderingContextEvictionManager()); |
| 577 | 577 |
| 578 // Create the DrawingBuffer and initialize the platform layer. | 578 // Create the DrawingBuffer and initialize the platform layer. |
| 579 DrawingBuffer::PreserveDrawingBuffer preserve = preserveDrawingBuffer ? Draw
ingBuffer::Preserve : DrawingBuffer::Discard; | 579 DrawingBuffer::PreserveDrawingBuffer preserve = preserveDrawingBuffer ? Draw
ingBuffer::Preserve : DrawingBuffer::Discard; |
| 580 m_drawingBuffer = DrawingBuffer::create(m_contextSupport.get(), clampedCanva
sSize(), preserve, contextEvictionManager.release()); | 580 m_drawingBuffer = DrawingBuffer::create(m_context.get(), clampedCanvasSize()
, preserve, contextEvictionManager.release()); |
| 581 | 581 |
| 582 if (!m_drawingBuffer->isZeroSized()) { | 582 if (!m_drawingBuffer->isZeroSized()) { |
| 583 m_drawingBuffer->bind(); | 583 m_drawingBuffer->bind(); |
| 584 setupFlags(); | 584 setupFlags(); |
| 585 initializeNewContext(); | 585 initializeNewContext(); |
| 586 } | 586 } |
| 587 | 587 |
| 588 // Register extensions. | 588 // Register extensions. |
| 589 static const char* const webkitPrefix[] = { "WEBKIT_", 0, }; | 589 static const char* const webkitPrefix[] = { "WEBKIT_", 0, }; |
| 590 static const char* const bothPrefixes[] = { "", "WEBKIT_", 0, }; | 590 static const char* const bothPrefixes[] = { "", "WEBKIT_", 0, }; |
| (...skipping 4834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5425 synthesizeGLError(GL_INVALID_OPERATION, "", "error restoring context
"); | 5425 synthesizeGLError(GL_INVALID_OPERATION, "", "error restoring context
"); |
| 5426 } | 5426 } |
| 5427 return; | 5427 return; |
| 5428 } | 5428 } |
| 5429 | 5429 |
| 5430 RefPtr<WebGLRenderingContextEvictionManager> contextEvictionManager = adoptR
ef(new WebGLRenderingContextEvictionManager()); | 5430 RefPtr<WebGLRenderingContextEvictionManager> contextEvictionManager = adoptR
ef(new WebGLRenderingContextEvictionManager()); |
| 5431 | 5431 |
| 5432 // Construct a new drawing buffer with the new GraphicsContext3D. | 5432 // Construct a new drawing buffer with the new GraphicsContext3D. |
| 5433 m_drawingBuffer->releaseResources(); | 5433 m_drawingBuffer->releaseResources(); |
| 5434 DrawingBuffer::PreserveDrawingBuffer preserve = m_preserveDrawingBuffer ? Dr
awingBuffer::Preserve : DrawingBuffer::Discard; | 5434 DrawingBuffer::PreserveDrawingBuffer preserve = m_preserveDrawingBuffer ? Dr
awingBuffer::Preserve : DrawingBuffer::Discard; |
| 5435 m_drawingBuffer = DrawingBuffer::create(contextSupport.get(), clampedCanvasS
ize(), preserve, contextEvictionManager.release()); | 5435 m_drawingBuffer = DrawingBuffer::create(context.get(), clampedCanvasSize(),
preserve, contextEvictionManager.release()); |
| 5436 | 5436 |
| 5437 if (m_drawingBuffer->isZeroSized()) | 5437 if (m_drawingBuffer->isZeroSized()) |
| 5438 return; | 5438 return; |
| 5439 | 5439 |
| 5440 m_drawingBuffer->bind(); | 5440 m_drawingBuffer->bind(); |
| 5441 | 5441 |
| 5442 m_lostContextErrors.clear(); | 5442 m_lostContextErrors.clear(); |
| 5443 | 5443 |
| 5444 m_contextSupport = contextSupport; | 5444 m_contextSupport = contextSupport; |
| 5445 m_context = context.release(); | 5445 m_context = context.release(); |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5637 if (m_textureUnits[i].m_texture2DBinding | 5637 if (m_textureUnits[i].m_texture2DBinding |
| 5638 || m_textureUnits[i].m_textureCubeMapBinding) { | 5638 || m_textureUnits[i].m_textureCubeMapBinding) { |
| 5639 m_onePlusMaxNonDefaultTextureUnit = i + 1; | 5639 m_onePlusMaxNonDefaultTextureUnit = i + 1; |
| 5640 return; | 5640 return; |
| 5641 } | 5641 } |
| 5642 } | 5642 } |
| 5643 m_onePlusMaxNonDefaultTextureUnit = 0; | 5643 m_onePlusMaxNonDefaultTextureUnit = 0; |
| 5644 } | 5644 } |
| 5645 | 5645 |
| 5646 } // namespace WebCore | 5646 } // namespace WebCore |
| OLD | NEW |