| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/webgl/WebGL2RenderingContextBase.h" | 5 #include "modules/webgl/WebGL2RenderingContextBase.h" |
| 6 | 6 |
| 7 #include "bindings/modules/v8/WebGLAny.h" | 7 #include "bindings/modules/v8/WebGLAny.h" |
| 8 #include "core/frame/ImageBitmap.h" | 8 #include "core/frame/ImageBitmap.h" |
| 9 #include "core/html/HTMLCanvasElement.h" | 9 #include "core/html/HTMLCanvasElement.h" |
| 10 #include "core/html/HTMLImageElement.h" | 10 #include "core/html/HTMLImageElement.h" |
| (...skipping 2384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2395 | 2395 |
| 2396 if (location->program() != m_currentProgram) { | 2396 if (location->program() != m_currentProgram) { |
| 2397 synthesizeGLError(GL_INVALID_OPERATION, "uniform4ui", | 2397 synthesizeGLError(GL_INVALID_OPERATION, "uniform4ui", |
| 2398 "location not for current program"); | 2398 "location not for current program"); |
| 2399 return; | 2399 return; |
| 2400 } | 2400 } |
| 2401 | 2401 |
| 2402 contextGL()->Uniform4ui(location->location(), v0, v1, v2, v3); | 2402 contextGL()->Uniform4ui(location->location(), v0, v1, v2, v3); |
| 2403 } | 2403 } |
| 2404 | 2404 |
| 2405 void WebGL2RenderingContextBase::uniform1fv( |
| 2406 const WebGLUniformLocation* location, |
| 2407 const FlexibleFloat32ArrayView& v, |
| 2408 GLuint srcOffset, |
| 2409 GLuint srcLength) { |
| 2410 if (isContextLost() || |
| 2411 !validateUniformParameters<WTF::Float32Array>("uniform1fv", location, v, |
| 2412 1, srcOffset, srcLength)) |
| 2413 return; |
| 2414 |
| 2415 contextGL()->Uniform1fv(location->location(), v.length(), |
| 2416 v.dataMaybeOnStack() + srcOffset); |
| 2417 } |
| 2418 |
| 2419 void WebGL2RenderingContextBase::uniform1fv( |
| 2420 const WebGLUniformLocation* location, |
| 2421 Vector<GLfloat>& v, |
| 2422 GLuint srcOffset, |
| 2423 GLuint srcLength) { |
| 2424 if (isContextLost() || |
| 2425 !validateUniformParameters("uniform1fv", location, v.data(), v.size(), 1, |
| 2426 srcOffset, srcLength)) |
| 2427 return; |
| 2428 |
| 2429 contextGL()->Uniform1fv(location->location(), v.size(), v.data() + srcOffset); |
| 2430 } |
| 2431 |
| 2432 void WebGL2RenderingContextBase::uniform2fv( |
| 2433 const WebGLUniformLocation* location, |
| 2434 const FlexibleFloat32ArrayView& v, |
| 2435 GLuint srcOffset, |
| 2436 GLuint srcLength) { |
| 2437 if (isContextLost() || |
| 2438 !validateUniformParameters<WTF::Float32Array>("uniform2fv", location, v, |
| 2439 2, srcOffset, srcLength)) |
| 2440 return; |
| 2441 |
| 2442 contextGL()->Uniform2fv(location->location(), v.length() >> 1, |
| 2443 v.dataMaybeOnStack() + srcOffset); |
| 2444 } |
| 2445 |
| 2446 void WebGL2RenderingContextBase::uniform2fv( |
| 2447 const WebGLUniformLocation* location, |
| 2448 Vector<GLfloat>& v, |
| 2449 GLuint srcOffset, |
| 2450 GLuint srcLength) { |
| 2451 if (isContextLost() || |
| 2452 !validateUniformParameters("uniform2fv", location, v.data(), v.size(), 2, |
| 2453 srcOffset, srcLength)) |
| 2454 return; |
| 2455 |
| 2456 contextGL()->Uniform2fv(location->location(), v.size() >> 1, |
| 2457 v.data() + srcOffset); |
| 2458 } |
| 2459 |
| 2460 void WebGL2RenderingContextBase::uniform3fv( |
| 2461 const WebGLUniformLocation* location, |
| 2462 const FlexibleFloat32ArrayView& v, |
| 2463 GLuint srcOffset, |
| 2464 GLuint srcLength) { |
| 2465 if (isContextLost() || |
| 2466 !validateUniformParameters<WTF::Float32Array>("uniform3fv", location, v, |
| 2467 3, srcOffset, srcLength)) |
| 2468 return; |
| 2469 |
| 2470 contextGL()->Uniform3fv(location->location(), v.length() / 3, |
| 2471 v.dataMaybeOnStack() + srcOffset); |
| 2472 } |
| 2473 |
| 2474 void WebGL2RenderingContextBase::uniform3fv( |
| 2475 const WebGLUniformLocation* location, |
| 2476 Vector<GLfloat>& v, |
| 2477 GLuint srcOffset, |
| 2478 GLuint srcLength) { |
| 2479 if (isContextLost() || |
| 2480 !validateUniformParameters("uniform3fv", location, v.data(), v.size(), 3, |
| 2481 srcOffset, srcLength)) |
| 2482 return; |
| 2483 |
| 2484 contextGL()->Uniform3fv(location->location(), v.size() / 3, |
| 2485 v.data() + srcOffset); |
| 2486 } |
| 2487 |
| 2488 void WebGL2RenderingContextBase::uniform4fv( |
| 2489 const WebGLUniformLocation* location, |
| 2490 const FlexibleFloat32ArrayView& v, |
| 2491 GLuint srcOffset, |
| 2492 GLuint srcLength) { |
| 2493 if (isContextLost() || |
| 2494 !validateUniformParameters<WTF::Float32Array>("uniform4fv", location, v, |
| 2495 4, srcOffset, srcLength)) |
| 2496 return; |
| 2497 |
| 2498 contextGL()->Uniform4fv(location->location(), v.length() >> 2, |
| 2499 v.dataMaybeOnStack() + srcOffset); |
| 2500 } |
| 2501 |
| 2502 void WebGL2RenderingContextBase::uniform4fv( |
| 2503 const WebGLUniformLocation* location, |
| 2504 Vector<GLfloat>& v, |
| 2505 GLuint srcOffset, |
| 2506 GLuint srcLength) { |
| 2507 if (isContextLost() || |
| 2508 !validateUniformParameters("uniform4fv", location, v.data(), v.size(), 4, |
| 2509 srcOffset, srcLength)) |
| 2510 return; |
| 2511 |
| 2512 contextGL()->Uniform4fv(location->location(), v.size() >> 2, |
| 2513 v.data() + srcOffset); |
| 2514 } |
| 2515 |
| 2516 void WebGL2RenderingContextBase::uniform1iv( |
| 2517 const WebGLUniformLocation* location, |
| 2518 const FlexibleInt32ArrayView& v, |
| 2519 GLuint srcOffset, |
| 2520 GLuint srcLength) { |
| 2521 if (isContextLost() || |
| 2522 !validateUniformParameters<WTF::Int32Array>("uniform1iv", location, v, 1, |
| 2523 srcOffset, srcLength)) |
| 2524 return; |
| 2525 |
| 2526 contextGL()->Uniform1iv(location->location(), v.length(), |
| 2527 v.dataMaybeOnStack() + srcOffset); |
| 2528 } |
| 2529 |
| 2530 void WebGL2RenderingContextBase::uniform1iv( |
| 2531 const WebGLUniformLocation* location, |
| 2532 Vector<GLint>& v, |
| 2533 GLuint srcOffset, |
| 2534 GLuint srcLength) { |
| 2535 if (isContextLost() || |
| 2536 !validateUniformParameters("uniform1iv", location, v.data(), v.size(), 1, |
| 2537 srcOffset, srcLength)) |
| 2538 return; |
| 2539 |
| 2540 contextGL()->Uniform1iv(location->location(), v.size(), v.data() + srcOffset); |
| 2541 } |
| 2542 |
| 2543 void WebGL2RenderingContextBase::uniform2iv( |
| 2544 const WebGLUniformLocation* location, |
| 2545 const FlexibleInt32ArrayView& v, |
| 2546 GLuint srcOffset, |
| 2547 GLuint srcLength) { |
| 2548 if (isContextLost() || |
| 2549 !validateUniformParameters<WTF::Int32Array>("uniform2iv", location, v, 2, |
| 2550 srcOffset, srcLength)) |
| 2551 return; |
| 2552 |
| 2553 contextGL()->Uniform2iv(location->location(), v.length() >> 1, |
| 2554 v.dataMaybeOnStack() + srcOffset); |
| 2555 } |
| 2556 |
| 2557 void WebGL2RenderingContextBase::uniform2iv( |
| 2558 const WebGLUniformLocation* location, |
| 2559 Vector<GLint>& v, |
| 2560 GLuint srcOffset, |
| 2561 GLuint srcLength) { |
| 2562 if (isContextLost() || |
| 2563 !validateUniformParameters("uniform2iv", location, v.data(), v.size(), 2, |
| 2564 srcOffset, srcLength)) |
| 2565 return; |
| 2566 |
| 2567 contextGL()->Uniform2iv(location->location(), v.size() >> 1, |
| 2568 v.data() + srcOffset); |
| 2569 } |
| 2570 |
| 2571 void WebGL2RenderingContextBase::uniform3iv( |
| 2572 const WebGLUniformLocation* location, |
| 2573 const FlexibleInt32ArrayView& v, |
| 2574 GLuint srcOffset, |
| 2575 GLuint srcLength) { |
| 2576 if (isContextLost() || |
| 2577 !validateUniformParameters<WTF::Int32Array>("uniform3iv", location, v, 3, |
| 2578 srcOffset, srcLength)) |
| 2579 return; |
| 2580 |
| 2581 contextGL()->Uniform3iv(location->location(), v.length() / 3, |
| 2582 v.dataMaybeOnStack() + srcOffset); |
| 2583 } |
| 2584 |
| 2585 void WebGL2RenderingContextBase::uniform3iv( |
| 2586 const WebGLUniformLocation* location, |
| 2587 Vector<GLint>& v, |
| 2588 GLuint srcOffset, |
| 2589 GLuint srcLength) { |
| 2590 if (isContextLost() || |
| 2591 !validateUniformParameters("uniform3iv", location, v.data(), v.size(), 3, |
| 2592 srcOffset, srcLength)) |
| 2593 return; |
| 2594 |
| 2595 contextGL()->Uniform3iv(location->location(), v.size() / 3, |
| 2596 v.data() + srcOffset); |
| 2597 } |
| 2598 |
| 2599 void WebGL2RenderingContextBase::uniform4iv( |
| 2600 const WebGLUniformLocation* location, |
| 2601 const FlexibleInt32ArrayView& v, |
| 2602 GLuint srcOffset, |
| 2603 GLuint srcLength) { |
| 2604 if (isContextLost() || |
| 2605 !validateUniformParameters<WTF::Int32Array>("uniform4iv", location, v, 4, |
| 2606 srcOffset, srcLength)) |
| 2607 return; |
| 2608 |
| 2609 contextGL()->Uniform4iv(location->location(), v.length() >> 2, |
| 2610 v.dataMaybeOnStack() + srcOffset); |
| 2611 } |
| 2612 |
| 2613 void WebGL2RenderingContextBase::uniform4iv( |
| 2614 const WebGLUniformLocation* location, |
| 2615 Vector<GLint>& v, |
| 2616 GLuint srcOffset, |
| 2617 GLuint srcLength) { |
| 2618 if (isContextLost() || |
| 2619 !validateUniformParameters("uniform4iv", location, v.data(), v.size(), 4, |
| 2620 srcOffset, srcLength)) |
| 2621 return; |
| 2622 |
| 2623 contextGL()->Uniform4iv(location->location(), v.size() >> 2, |
| 2624 v.data() + srcOffset); |
| 2625 } |
| 2626 |
| 2405 void WebGL2RenderingContextBase::uniform1uiv( | 2627 void WebGL2RenderingContextBase::uniform1uiv( |
| 2406 const WebGLUniformLocation* location, | 2628 const WebGLUniformLocation* location, |
| 2407 const FlexibleUint32ArrayView& v) { | 2629 const FlexibleUint32ArrayView& v, |
| 2630 GLuint srcOffset, |
| 2631 GLuint srcLength) { |
| 2408 if (isContextLost() || | 2632 if (isContextLost() || |
| 2409 !validateUniformParameters<WTF::Uint32Array>("uniform1uiv", location, v, | 2633 !validateUniformParameters<WTF::Uint32Array>("uniform1uiv", location, v, |
| 2410 1)) | 2634 1, srcOffset, srcLength)) |
| 2411 return; | 2635 return; |
| 2412 | 2636 |
| 2413 contextGL()->Uniform1uiv(location->location(), v.length(), | 2637 contextGL()->Uniform1uiv(location->location(), v.length(), |
| 2414 v.dataMaybeOnStack()); | 2638 v.dataMaybeOnStack() + srcOffset); |
| 2415 } | 2639 } |
| 2416 | 2640 |
| 2417 void WebGL2RenderingContextBase::uniform1uiv( | 2641 void WebGL2RenderingContextBase::uniform1uiv( |
| 2418 const WebGLUniformLocation* location, | 2642 const WebGLUniformLocation* location, |
| 2419 Vector<GLuint>& value) { | 2643 Vector<GLuint>& value, |
| 2644 GLuint srcOffset, |
| 2645 GLuint srcLength) { |
| 2420 if (isContextLost() || | 2646 if (isContextLost() || |
| 2421 !validateUniformParameters("uniform1uiv", location, value.data(), | 2647 !validateUniformParameters("uniform1uiv", location, value.data(), |
| 2422 value.size(), 1)) | 2648 value.size(), 1, srcOffset, srcLength)) |
| 2423 return; | 2649 return; |
| 2424 | 2650 |
| 2425 contextGL()->Uniform1uiv(location->location(), value.size(), value.data()); | 2651 contextGL()->Uniform1uiv(location->location(), value.size(), |
| 2652 value.data() + srcOffset); |
| 2426 } | 2653 } |
| 2427 | 2654 |
| 2428 void WebGL2RenderingContextBase::uniform2uiv( | 2655 void WebGL2RenderingContextBase::uniform2uiv( |
| 2429 const WebGLUniformLocation* location, | 2656 const WebGLUniformLocation* location, |
| 2430 const FlexibleUint32ArrayView& v) { | 2657 const FlexibleUint32ArrayView& v, |
| 2658 GLuint srcOffset, |
| 2659 GLuint srcLength) { |
| 2431 if (isContextLost() || | 2660 if (isContextLost() || |
| 2432 !validateUniformParameters<WTF::Uint32Array>("uniform2uiv", location, v, | 2661 !validateUniformParameters<WTF::Uint32Array>("uniform2uiv", location, v, |
| 2433 2)) | 2662 2, srcOffset, srcLength)) |
| 2434 return; | 2663 return; |
| 2435 | 2664 |
| 2436 contextGL()->Uniform2uiv(location->location(), v.length() >> 1, | 2665 contextGL()->Uniform2uiv(location->location(), v.length() >> 1, |
| 2437 v.dataMaybeOnStack()); | 2666 v.dataMaybeOnStack() + srcOffset); |
| 2438 } | 2667 } |
| 2439 | 2668 |
| 2440 void WebGL2RenderingContextBase::uniform2uiv( | 2669 void WebGL2RenderingContextBase::uniform2uiv( |
| 2441 const WebGLUniformLocation* location, | 2670 const WebGLUniformLocation* location, |
| 2442 Vector<GLuint>& value) { | 2671 Vector<GLuint>& value, |
| 2672 GLuint srcOffset, |
| 2673 GLuint srcLength) { |
| 2443 if (isContextLost() || | 2674 if (isContextLost() || |
| 2444 !validateUniformParameters("uniform2uiv", location, value.data(), | 2675 !validateUniformParameters("uniform2uiv", location, value.data(), |
| 2445 value.size(), 2)) | 2676 value.size(), 2, srcOffset, srcLength)) |
| 2446 return; | 2677 return; |
| 2447 | 2678 |
| 2448 contextGL()->Uniform2uiv(location->location(), value.size() / 2, | 2679 contextGL()->Uniform2uiv(location->location(), value.size() / 2, |
| 2449 value.data()); | 2680 value.data() + srcOffset); |
| 2450 } | 2681 } |
| 2451 | 2682 |
| 2452 void WebGL2RenderingContextBase::uniform3uiv( | 2683 void WebGL2RenderingContextBase::uniform3uiv( |
| 2453 const WebGLUniformLocation* location, | 2684 const WebGLUniformLocation* location, |
| 2454 const FlexibleUint32ArrayView& v) { | 2685 const FlexibleUint32ArrayView& v, |
| 2686 GLuint srcOffset, |
| 2687 GLuint srcLength) { |
| 2455 if (isContextLost() || | 2688 if (isContextLost() || |
| 2456 !validateUniformParameters<WTF::Uint32Array>("uniform3uiv", location, v, | 2689 !validateUniformParameters<WTF::Uint32Array>("uniform3uiv", location, v, |
| 2457 3)) | 2690 3, srcOffset, srcLength)) |
| 2458 return; | 2691 return; |
| 2459 | 2692 |
| 2460 contextGL()->Uniform3uiv(location->location(), v.length() / 3, | 2693 contextGL()->Uniform3uiv(location->location(), v.length() / 3, |
| 2461 v.dataMaybeOnStack()); | 2694 v.dataMaybeOnStack() + srcOffset); |
| 2462 } | 2695 } |
| 2463 | 2696 |
| 2464 void WebGL2RenderingContextBase::uniform3uiv( | 2697 void WebGL2RenderingContextBase::uniform3uiv( |
| 2465 const WebGLUniformLocation* location, | 2698 const WebGLUniformLocation* location, |
| 2466 Vector<GLuint>& value) { | 2699 Vector<GLuint>& value, |
| 2700 GLuint srcOffset, |
| 2701 GLuint srcLength) { |
| 2467 if (isContextLost() || | 2702 if (isContextLost() || |
| 2468 !validateUniformParameters("uniform3uiv", location, value.data(), | 2703 !validateUniformParameters("uniform3uiv", location, value.data(), |
| 2469 value.size(), 3)) | 2704 value.size(), 3, srcOffset, srcLength)) |
| 2470 return; | 2705 return; |
| 2471 | 2706 |
| 2472 contextGL()->Uniform3uiv(location->location(), value.size() / 3, | 2707 contextGL()->Uniform3uiv(location->location(), value.size() / 3, |
| 2473 value.data()); | 2708 value.data() + srcOffset); |
| 2474 } | 2709 } |
| 2475 | 2710 |
| 2476 void WebGL2RenderingContextBase::uniform4uiv( | 2711 void WebGL2RenderingContextBase::uniform4uiv( |
| 2477 const WebGLUniformLocation* location, | 2712 const WebGLUniformLocation* location, |
| 2478 const FlexibleUint32ArrayView& v) { | 2713 const FlexibleUint32ArrayView& v, |
| 2714 GLuint srcOffset, |
| 2715 GLuint srcLength) { |
| 2479 if (isContextLost() || | 2716 if (isContextLost() || |
| 2480 !validateUniformParameters<WTF::Uint32Array>("uniform4uiv", location, v, | 2717 !validateUniformParameters<WTF::Uint32Array>("uniform4uiv", location, v, |
| 2481 4)) | 2718 4, srcOffset, srcLength)) |
| 2482 return; | 2719 return; |
| 2483 | 2720 |
| 2484 contextGL()->Uniform4uiv(location->location(), v.length() >> 2, | 2721 contextGL()->Uniform4uiv(location->location(), v.length() >> 2, |
| 2485 v.dataMaybeOnStack()); | 2722 v.dataMaybeOnStack() + srcOffset); |
| 2486 } | 2723 } |
| 2487 | 2724 |
| 2488 void WebGL2RenderingContextBase::uniform4uiv( | 2725 void WebGL2RenderingContextBase::uniform4uiv( |
| 2489 const WebGLUniformLocation* location, | 2726 const WebGLUniformLocation* location, |
| 2490 Vector<GLuint>& value) { | 2727 Vector<GLuint>& value, |
| 2728 GLuint srcOffset, |
| 2729 GLuint srcLength) { |
| 2491 if (isContextLost() || | 2730 if (isContextLost() || |
| 2492 !validateUniformParameters("uniform4uiv", location, value.data(), | 2731 !validateUniformParameters("uniform4uiv", location, value.data(), |
| 2493 value.size(), 4)) | 2732 value.size(), 4, srcOffset, srcLength)) |
| 2494 return; | 2733 return; |
| 2495 | 2734 |
| 2496 contextGL()->Uniform4uiv(location->location(), value.size() / 4, | 2735 contextGL()->Uniform4uiv(location->location(), value.size() / 4, |
| 2497 value.data()); | 2736 value.data() + srcOffset); |
| 2737 } |
| 2738 |
| 2739 void WebGL2RenderingContextBase::uniformMatrix2fv( |
| 2740 const WebGLUniformLocation* location, |
| 2741 GLboolean transpose, |
| 2742 DOMFloat32Array* v, |
| 2743 GLuint srcOffset, |
| 2744 GLuint srcLength) { |
| 2745 if (isContextLost() || |
| 2746 !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, |
| 2747 v, 4, srcOffset, srcLength)) |
| 2748 return; |
| 2749 contextGL()->UniformMatrix2fv(location->location(), v->length() >> 2, |
| 2750 transpose, v->data() + srcOffset); |
| 2751 } |
| 2752 |
| 2753 void WebGL2RenderingContextBase::uniformMatrix2fv( |
| 2754 const WebGLUniformLocation* location, |
| 2755 GLboolean transpose, |
| 2756 Vector<GLfloat>& v, |
| 2757 GLuint srcOffset, |
| 2758 GLuint srcLength) { |
| 2759 if (isContextLost() || |
| 2760 !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, |
| 2761 v.data(), v.size(), 4, srcOffset, |
| 2762 srcLength)) |
| 2763 return; |
| 2764 contextGL()->UniformMatrix2fv(location->location(), v.size() >> 2, transpose, |
| 2765 v.data() + srcOffset); |
| 2766 } |
| 2767 |
| 2768 void WebGL2RenderingContextBase::uniformMatrix3fv( |
| 2769 const WebGLUniformLocation* location, |
| 2770 GLboolean transpose, |
| 2771 DOMFloat32Array* v, |
| 2772 GLuint srcOffset, |
| 2773 GLuint srcLength) { |
| 2774 if (isContextLost() || |
| 2775 !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, |
| 2776 v, 9, srcOffset, srcLength)) |
| 2777 return; |
| 2778 contextGL()->UniformMatrix3fv(location->location(), v->length() / 9, |
| 2779 transpose, v->data() + srcOffset); |
| 2780 } |
| 2781 |
| 2782 void WebGL2RenderingContextBase::uniformMatrix3fv( |
| 2783 const WebGLUniformLocation* location, |
| 2784 GLboolean transpose, |
| 2785 Vector<GLfloat>& v, |
| 2786 GLuint srcOffset, |
| 2787 GLuint srcLength) { |
| 2788 if (isContextLost() || |
| 2789 !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, |
| 2790 v.data(), v.size(), 9, srcOffset, |
| 2791 srcLength)) |
| 2792 return; |
| 2793 contextGL()->UniformMatrix3fv(location->location(), v.size() / 9, transpose, |
| 2794 v.data() + srcOffset); |
| 2795 } |
| 2796 |
| 2797 void WebGL2RenderingContextBase::uniformMatrix4fv( |
| 2798 const WebGLUniformLocation* location, |
| 2799 GLboolean transpose, |
| 2800 DOMFloat32Array* v, |
| 2801 GLuint srcOffset, |
| 2802 GLuint srcLength) { |
| 2803 if (isContextLost() || |
| 2804 !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, |
| 2805 v, 16, srcOffset, srcLength)) |
| 2806 return; |
| 2807 contextGL()->UniformMatrix4fv(location->location(), v->length() >> 4, |
| 2808 transpose, v->data() + srcOffset); |
| 2809 } |
| 2810 |
| 2811 void WebGL2RenderingContextBase::uniformMatrix4fv( |
| 2812 const WebGLUniformLocation* location, |
| 2813 GLboolean transpose, |
| 2814 Vector<GLfloat>& v, |
| 2815 GLuint srcOffset, |
| 2816 GLuint srcLength) { |
| 2817 if (isContextLost() || |
| 2818 !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, |
| 2819 v.data(), v.size(), 16, srcOffset, |
| 2820 srcLength)) |
| 2821 return; |
| 2822 contextGL()->UniformMatrix4fv(location->location(), v.size() >> 4, transpose, |
| 2823 v.data() + srcOffset); |
| 2498 } | 2824 } |
| 2499 | 2825 |
| 2500 void WebGL2RenderingContextBase::uniformMatrix2x3fv( | 2826 void WebGL2RenderingContextBase::uniformMatrix2x3fv( |
| 2501 const WebGLUniformLocation* location, | 2827 const WebGLUniformLocation* location, |
| 2502 GLboolean transpose, | 2828 GLboolean transpose, |
| 2503 DOMFloat32Array* value) { | 2829 DOMFloat32Array* value, |
| 2830 GLuint srcOffset, |
| 2831 GLuint srcLength) { |
| 2504 if (isContextLost() || | 2832 if (isContextLost() || |
| 2505 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, | 2833 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, |
| 2506 transpose, value, 6)) | 2834 transpose, value, 6, srcOffset, |
| 2835 srcLength)) |
| 2507 return; | 2836 return; |
| 2508 contextGL()->UniformMatrix2x3fv(location->location(), value->length() / 6, | 2837 contextGL()->UniformMatrix2x3fv(location->location(), value->length() / 6, |
| 2509 transpose, value->data()); | 2838 transpose, value->data() + srcOffset); |
| 2510 } | 2839 } |
| 2511 | 2840 |
| 2512 void WebGL2RenderingContextBase::uniformMatrix2x3fv( | 2841 void WebGL2RenderingContextBase::uniformMatrix2x3fv( |
| 2513 const WebGLUniformLocation* location, | 2842 const WebGLUniformLocation* location, |
| 2514 GLboolean transpose, | 2843 GLboolean transpose, |
| 2515 Vector<GLfloat>& value) { | 2844 Vector<GLfloat>& value, |
| 2845 GLuint srcOffset, |
| 2846 GLuint srcLength) { |
| 2516 if (isContextLost() || | 2847 if (isContextLost() || |
| 2517 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, | 2848 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, |
| 2518 transpose, value.data(), value.size(), | 2849 transpose, value.data(), value.size(), 6, |
| 2519 6)) | 2850 srcOffset, srcLength)) |
| 2520 return; | 2851 return; |
| 2521 contextGL()->UniformMatrix2x3fv(location->location(), value.size() / 6, | 2852 contextGL()->UniformMatrix2x3fv(location->location(), value.size() / 6, |
| 2522 transpose, value.data()); | 2853 transpose, value.data() + srcOffset); |
| 2523 } | 2854 } |
| 2524 | 2855 |
| 2525 void WebGL2RenderingContextBase::uniformMatrix3x2fv( | 2856 void WebGL2RenderingContextBase::uniformMatrix3x2fv( |
| 2526 const WebGLUniformLocation* location, | 2857 const WebGLUniformLocation* location, |
| 2527 GLboolean transpose, | 2858 GLboolean transpose, |
| 2528 DOMFloat32Array* value) { | 2859 DOMFloat32Array* value, |
| 2860 GLuint srcOffset, |
| 2861 GLuint srcLength) { |
| 2529 if (isContextLost() || | 2862 if (isContextLost() || |
| 2530 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, | 2863 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, |
| 2531 transpose, value, 6)) | 2864 transpose, value, 6, srcOffset, |
| 2865 srcLength)) |
| 2532 return; | 2866 return; |
| 2533 contextGL()->UniformMatrix3x2fv(location->location(), value->length() / 6, | 2867 contextGL()->UniformMatrix3x2fv(location->location(), value->length() / 6, |
| 2534 transpose, value->data()); | 2868 transpose, value->data() + srcOffset); |
| 2535 } | 2869 } |
| 2536 | 2870 |
| 2537 void WebGL2RenderingContextBase::uniformMatrix3x2fv( | 2871 void WebGL2RenderingContextBase::uniformMatrix3x2fv( |
| 2538 const WebGLUniformLocation* location, | 2872 const WebGLUniformLocation* location, |
| 2539 GLboolean transpose, | 2873 GLboolean transpose, |
| 2540 Vector<GLfloat>& value) { | 2874 Vector<GLfloat>& value, |
| 2875 GLuint srcOffset, |
| 2876 GLuint srcLength) { |
| 2541 if (isContextLost() || | 2877 if (isContextLost() || |
| 2542 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, | 2878 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, |
| 2543 transpose, value.data(), value.size(), | 2879 transpose, value.data(), value.size(), 6, |
| 2544 6)) | 2880 srcOffset, srcLength)) |
| 2545 return; | 2881 return; |
| 2546 contextGL()->UniformMatrix3x2fv(location->location(), value.size() / 6, | 2882 contextGL()->UniformMatrix3x2fv(location->location(), value.size() / 6, |
| 2547 transpose, value.data()); | 2883 transpose, value.data() + srcOffset); |
| 2548 } | 2884 } |
| 2549 | 2885 |
| 2550 void WebGL2RenderingContextBase::uniformMatrix2x4fv( | 2886 void WebGL2RenderingContextBase::uniformMatrix2x4fv( |
| 2551 const WebGLUniformLocation* location, | 2887 const WebGLUniformLocation* location, |
| 2552 GLboolean transpose, | 2888 GLboolean transpose, |
| 2553 DOMFloat32Array* value) { | 2889 DOMFloat32Array* value, |
| 2890 GLuint srcOffset, |
| 2891 GLuint srcLength) { |
| 2554 if (isContextLost() || | 2892 if (isContextLost() || |
| 2555 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, | 2893 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, |
| 2556 transpose, value, 8)) | 2894 transpose, value, 8, srcOffset, |
| 2895 srcLength)) |
| 2557 return; | 2896 return; |
| 2558 contextGL()->UniformMatrix2x4fv(location->location(), value->length() / 8, | 2897 contextGL()->UniformMatrix2x4fv(location->location(), value->length() / 8, |
| 2559 transpose, value->data()); | 2898 transpose, value->data() + srcOffset); |
| 2560 } | 2899 } |
| 2561 | 2900 |
| 2562 void WebGL2RenderingContextBase::uniformMatrix2x4fv( | 2901 void WebGL2RenderingContextBase::uniformMatrix2x4fv( |
| 2563 const WebGLUniformLocation* location, | 2902 const WebGLUniformLocation* location, |
| 2564 GLboolean transpose, | 2903 GLboolean transpose, |
| 2565 Vector<GLfloat>& value) { | 2904 Vector<GLfloat>& value, |
| 2905 GLuint srcOffset, |
| 2906 GLuint srcLength) { |
| 2566 if (isContextLost() || | 2907 if (isContextLost() || |
| 2567 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, | 2908 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, |
| 2568 transpose, value.data(), value.size(), | 2909 transpose, value.data(), value.size(), 8, |
| 2569 8)) | 2910 srcOffset, srcLength)) |
| 2570 return; | 2911 return; |
| 2571 contextGL()->UniformMatrix2x4fv(location->location(), value.size() / 8, | 2912 contextGL()->UniformMatrix2x4fv(location->location(), value.size() / 8, |
| 2572 transpose, value.data()); | 2913 transpose, value.data() + srcOffset); |
| 2573 } | 2914 } |
| 2574 | 2915 |
| 2575 void WebGL2RenderingContextBase::uniformMatrix4x2fv( | 2916 void WebGL2RenderingContextBase::uniformMatrix4x2fv( |
| 2576 const WebGLUniformLocation* location, | 2917 const WebGLUniformLocation* location, |
| 2577 GLboolean transpose, | 2918 GLboolean transpose, |
| 2578 DOMFloat32Array* value) { | 2919 DOMFloat32Array* value, |
| 2920 GLuint srcOffset, |
| 2921 GLuint srcLength) { |
| 2579 if (isContextLost() || | 2922 if (isContextLost() || |
| 2580 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, | 2923 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, |
| 2581 transpose, value, 8)) | 2924 transpose, value, 8, srcOffset, |
| 2925 srcLength)) |
| 2582 return; | 2926 return; |
| 2583 contextGL()->UniformMatrix4x2fv(location->location(), value->length() / 8, | 2927 contextGL()->UniformMatrix4x2fv(location->location(), value->length() / 8, |
| 2584 transpose, value->data()); | 2928 transpose, value->data() + srcOffset); |
| 2585 } | 2929 } |
| 2586 | 2930 |
| 2587 void WebGL2RenderingContextBase::uniformMatrix4x2fv( | 2931 void WebGL2RenderingContextBase::uniformMatrix4x2fv( |
| 2588 const WebGLUniformLocation* location, | 2932 const WebGLUniformLocation* location, |
| 2589 GLboolean transpose, | 2933 GLboolean transpose, |
| 2590 Vector<GLfloat>& value) { | 2934 Vector<GLfloat>& value, |
| 2935 GLuint srcOffset, |
| 2936 GLuint srcLength) { |
| 2591 if (isContextLost() || | 2937 if (isContextLost() || |
| 2592 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, | 2938 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, |
| 2593 transpose, value.data(), value.size(), | 2939 transpose, value.data(), value.size(), 8, |
| 2594 8)) | 2940 srcOffset, srcLength)) |
| 2595 return; | 2941 return; |
| 2596 contextGL()->UniformMatrix4x2fv(location->location(), value.size() / 8, | 2942 contextGL()->UniformMatrix4x2fv(location->location(), value.size() / 8, |
| 2597 transpose, value.data()); | 2943 transpose, value.data() + srcOffset); |
| 2598 } | 2944 } |
| 2599 | 2945 |
| 2600 void WebGL2RenderingContextBase::uniformMatrix3x4fv( | 2946 void WebGL2RenderingContextBase::uniformMatrix3x4fv( |
| 2601 const WebGLUniformLocation* location, | 2947 const WebGLUniformLocation* location, |
| 2602 GLboolean transpose, | 2948 GLboolean transpose, |
| 2603 DOMFloat32Array* value) { | 2949 DOMFloat32Array* value, |
| 2950 GLuint srcOffset, |
| 2951 GLuint srcLength) { |
| 2604 if (isContextLost() || | 2952 if (isContextLost() || |
| 2605 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, | 2953 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, |
| 2606 transpose, value, 12)) | 2954 transpose, value, 12, srcOffset, |
| 2955 srcLength)) |
| 2607 return; | 2956 return; |
| 2608 contextGL()->UniformMatrix3x4fv(location->location(), value->length() / 12, | 2957 contextGL()->UniformMatrix3x4fv(location->location(), value->length() / 12, |
| 2609 transpose, value->data()); | 2958 transpose, value->data() + srcOffset); |
| 2610 } | 2959 } |
| 2611 | 2960 |
| 2612 void WebGL2RenderingContextBase::uniformMatrix3x4fv( | 2961 void WebGL2RenderingContextBase::uniformMatrix3x4fv( |
| 2613 const WebGLUniformLocation* location, | 2962 const WebGLUniformLocation* location, |
| 2614 GLboolean transpose, | 2963 GLboolean transpose, |
| 2615 Vector<GLfloat>& value) { | 2964 Vector<GLfloat>& value, |
| 2965 GLuint srcOffset, |
| 2966 GLuint srcLength) { |
| 2616 if (isContextLost() || | 2967 if (isContextLost() || |
| 2617 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, | 2968 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, |
| 2618 transpose, value.data(), value.size(), | 2969 transpose, value.data(), value.size(), |
| 2619 12)) | 2970 12, srcOffset, srcLength)) |
| 2620 return; | 2971 return; |
| 2621 contextGL()->UniformMatrix3x4fv(location->location(), value.size() / 12, | 2972 contextGL()->UniformMatrix3x4fv(location->location(), value.size() / 12, |
| 2622 transpose, value.data()); | 2973 transpose, value.data() + srcOffset); |
| 2623 } | 2974 } |
| 2624 | 2975 |
| 2625 void WebGL2RenderingContextBase::uniformMatrix4x3fv( | 2976 void WebGL2RenderingContextBase::uniformMatrix4x3fv( |
| 2626 const WebGLUniformLocation* location, | 2977 const WebGLUniformLocation* location, |
| 2627 GLboolean transpose, | 2978 GLboolean transpose, |
| 2628 DOMFloat32Array* value) { | 2979 DOMFloat32Array* value, |
| 2980 GLuint srcOffset, |
| 2981 GLuint srcLength) { |
| 2629 if (isContextLost() || | 2982 if (isContextLost() || |
| 2630 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, | 2983 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, |
| 2631 transpose, value, 12)) | 2984 transpose, value, 12, srcOffset, |
| 2985 srcLength)) |
| 2632 return; | 2986 return; |
| 2633 contextGL()->UniformMatrix4x3fv(location->location(), value->length() / 12, | 2987 contextGL()->UniformMatrix4x3fv(location->location(), value->length() / 12, |
| 2634 transpose, value->data()); | 2988 transpose, value->data() + srcOffset); |
| 2635 } | 2989 } |
| 2636 | 2990 |
| 2637 void WebGL2RenderingContextBase::uniformMatrix4x3fv( | 2991 void WebGL2RenderingContextBase::uniformMatrix4x3fv( |
| 2638 const WebGLUniformLocation* location, | 2992 const WebGLUniformLocation* location, |
| 2639 GLboolean transpose, | 2993 GLboolean transpose, |
| 2640 Vector<GLfloat>& value) { | 2994 Vector<GLfloat>& value, |
| 2995 GLuint srcOffset, |
| 2996 GLuint srcLength) { |
| 2641 if (isContextLost() || | 2997 if (isContextLost() || |
| 2642 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, | 2998 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, |
| 2643 transpose, value.data(), value.size(), | 2999 transpose, value.data(), value.size(), |
| 2644 12)) | 3000 12, srcOffset, srcLength)) |
| 2645 return; | 3001 return; |
| 2646 contextGL()->UniformMatrix4x3fv(location->location(), value.size() / 12, | 3002 contextGL()->UniformMatrix4x3fv(location->location(), value.size() / 12, |
| 2647 transpose, value.data()); | 3003 transpose, value.data() + srcOffset); |
| 3004 } |
| 3005 |
| 3006 void WebGL2RenderingContextBase::uniform1fv( |
| 3007 const WebGLUniformLocation* location, |
| 3008 const FlexibleFloat32ArrayView& v) { |
| 3009 WebGLRenderingContextBase::uniform1fv(location, v); |
| 3010 } |
| 3011 |
| 3012 void WebGL2RenderingContextBase::uniform1fv( |
| 3013 const WebGLUniformLocation* location, |
| 3014 Vector<GLfloat>& v) { |
| 3015 WebGLRenderingContextBase::uniform1fv(location, v); |
| 3016 } |
| 3017 |
| 3018 void WebGL2RenderingContextBase::uniform2fv( |
| 3019 const WebGLUniformLocation* location, |
| 3020 const FlexibleFloat32ArrayView& v) { |
| 3021 WebGLRenderingContextBase::uniform2fv(location, v); |
| 3022 } |
| 3023 |
| 3024 void WebGL2RenderingContextBase::uniform2fv( |
| 3025 const WebGLUniformLocation* location, |
| 3026 Vector<GLfloat>& v) { |
| 3027 WebGLRenderingContextBase::uniform2fv(location, v); |
| 3028 } |
| 3029 |
| 3030 void WebGL2RenderingContextBase::uniform3fv( |
| 3031 const WebGLUniformLocation* location, |
| 3032 const FlexibleFloat32ArrayView& v) { |
| 3033 WebGLRenderingContextBase::uniform3fv(location, v); |
| 3034 } |
| 3035 |
| 3036 void WebGL2RenderingContextBase::uniform3fv( |
| 3037 const WebGLUniformLocation* location, |
| 3038 Vector<GLfloat>& v) { |
| 3039 WebGLRenderingContextBase::uniform3fv(location, v); |
| 3040 } |
| 3041 |
| 3042 void WebGL2RenderingContextBase::uniform4fv( |
| 3043 const WebGLUniformLocation* location, |
| 3044 const FlexibleFloat32ArrayView& v) { |
| 3045 WebGLRenderingContextBase::uniform4fv(location, v); |
| 3046 } |
| 3047 |
| 3048 void WebGL2RenderingContextBase::uniform4fv( |
| 3049 const WebGLUniformLocation* location, |
| 3050 Vector<GLfloat>& v) { |
| 3051 WebGLRenderingContextBase::uniform4fv(location, v); |
| 3052 } |
| 3053 |
| 3054 void WebGL2RenderingContextBase::uniform1iv( |
| 3055 const WebGLUniformLocation* location, |
| 3056 const FlexibleInt32ArrayView& v) { |
| 3057 WebGLRenderingContextBase::uniform1iv(location, v); |
| 3058 } |
| 3059 |
| 3060 void WebGL2RenderingContextBase::uniform1iv( |
| 3061 const WebGLUniformLocation* location, |
| 3062 Vector<GLint>& v) { |
| 3063 WebGLRenderingContextBase::uniform1iv(location, v); |
| 3064 } |
| 3065 |
| 3066 void WebGL2RenderingContextBase::uniform2iv( |
| 3067 const WebGLUniformLocation* location, |
| 3068 const FlexibleInt32ArrayView& v) { |
| 3069 WebGLRenderingContextBase::uniform2iv(location, v); |
| 3070 } |
| 3071 |
| 3072 void WebGL2RenderingContextBase::uniform2iv( |
| 3073 const WebGLUniformLocation* location, |
| 3074 Vector<GLint>& v) { |
| 3075 WebGLRenderingContextBase::uniform2iv(location, v); |
| 3076 } |
| 3077 |
| 3078 void WebGL2RenderingContextBase::uniform3iv( |
| 3079 const WebGLUniformLocation* location, |
| 3080 const FlexibleInt32ArrayView& v) { |
| 3081 WebGLRenderingContextBase::uniform3iv(location, v); |
| 3082 } |
| 3083 |
| 3084 void WebGL2RenderingContextBase::uniform3iv( |
| 3085 const WebGLUniformLocation* location, |
| 3086 Vector<GLint>& v) { |
| 3087 WebGLRenderingContextBase::uniform3iv(location, v); |
| 3088 } |
| 3089 |
| 3090 void WebGL2RenderingContextBase::uniform4iv( |
| 3091 const WebGLUniformLocation* location, |
| 3092 const FlexibleInt32ArrayView& v) { |
| 3093 WebGLRenderingContextBase::uniform4iv(location, v); |
| 3094 } |
| 3095 |
| 3096 void WebGL2RenderingContextBase::uniform4iv( |
| 3097 const WebGLUniformLocation* location, |
| 3098 Vector<GLint>& v) { |
| 3099 WebGLRenderingContextBase::uniform4iv(location, v); |
| 3100 } |
| 3101 |
| 3102 void WebGL2RenderingContextBase::uniformMatrix2fv( |
| 3103 const WebGLUniformLocation* location, |
| 3104 GLboolean transpose, |
| 3105 DOMFloat32Array* v) { |
| 3106 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v); |
| 3107 } |
| 3108 |
| 3109 void WebGL2RenderingContextBase::uniformMatrix2fv( |
| 3110 const WebGLUniformLocation* location, |
| 3111 GLboolean transpose, |
| 3112 Vector<GLfloat>& v) { |
| 3113 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v); |
| 3114 } |
| 3115 |
| 3116 void WebGL2RenderingContextBase::uniformMatrix3fv( |
| 3117 const WebGLUniformLocation* location, |
| 3118 GLboolean transpose, |
| 3119 DOMFloat32Array* v) { |
| 3120 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v); |
| 3121 } |
| 3122 |
| 3123 void WebGL2RenderingContextBase::uniformMatrix3fv( |
| 3124 const WebGLUniformLocation* location, |
| 3125 GLboolean transpose, |
| 3126 Vector<GLfloat>& v) { |
| 3127 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v); |
| 3128 } |
| 3129 |
| 3130 void WebGL2RenderingContextBase::uniformMatrix4fv( |
| 3131 const WebGLUniformLocation* location, |
| 3132 GLboolean transpose, |
| 3133 DOMFloat32Array* v) { |
| 3134 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v); |
| 3135 } |
| 3136 |
| 3137 void WebGL2RenderingContextBase::uniformMatrix4fv( |
| 3138 const WebGLUniformLocation* location, |
| 3139 GLboolean transpose, |
| 3140 Vector<GLfloat>& v) { |
| 3141 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v); |
| 2648 } | 3142 } |
| 2649 | 3143 |
| 2650 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index, | 3144 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index, |
| 2651 GLint x, | 3145 GLint x, |
| 2652 GLint y, | 3146 GLint y, |
| 2653 GLint z, | 3147 GLint z, |
| 2654 GLint w) { | 3148 GLint w) { |
| 2655 if (isContextLost()) | 3149 if (isContextLost()) |
| 2656 return; | 3150 return; |
| 2657 contextGL()->VertexAttribI4i(index, x, y, z, w); | 3151 contextGL()->VertexAttribI4i(index, x, y, z, w); |
| (...skipping 2441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5099 | 5593 |
| 5100 void WebGL2RenderingContextBase:: | 5594 void WebGL2RenderingContextBase:: |
| 5101 DrawingBufferClientRestorePixelUnpackBufferBinding() { | 5595 DrawingBufferClientRestorePixelUnpackBufferBinding() { |
| 5102 if (!contextGL()) | 5596 if (!contextGL()) |
| 5103 return; | 5597 return; |
| 5104 contextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER, | 5598 contextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER, |
| 5105 objectOrZero(m_boundPixelUnpackBuffer.get())); | 5599 objectOrZero(m_boundPixelUnpackBuffer.get())); |
| 5106 } | 5600 } |
| 5107 | 5601 |
| 5108 } // namespace blink | 5602 } // namespace blink |
| OLD | NEW |