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

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp

Issue 2692853006: Implement WebGL2's uniform*() with sub source. (Closed)
Patch Set: clean up Created 3 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698