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

Side by Side Diff: samples/o3d-webgl/state.js

Issue 1092003: Fixed a lot of bugs with render surfaces and bitmaps. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 10 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « samples/o3d-webgl/shape.js ('k') | samples/o3d-webgl/texture.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010, Google Inc. 2 * Copyright 2010, Google Inc.
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 o3d.State.STENCIL_INVERT = 5; 245 o3d.State.STENCIL_INVERT = 5;
246 o3d.State.STENCIL_INCREMENT = 6; 246 o3d.State.STENCIL_INCREMENT = 6;
247 o3d.State.STENCIL_DECREMENT = 7; 247 o3d.State.STENCIL_DECREMENT = 7;
248 248
249 249
250 250
251 /** 251 /**
252 * Returns a Param for a given state. If the param does not already exist it 252 * Returns a Param for a given state. If the param does not already exist it
253 * will be created. If the state_name is invalid it will return null. 253 * will be created. If the state_name is invalid it will return null.
254 * @param {string} state_name name of the state 254 * @param {string} state_name name of the state
255 * @returns {o3d.Param} param or null if no matching state. 255 * @return {o3d.Param} param or null if no matching state.
256 * 256 *
257 * Example: 257 * Example:
258 * 258 *
259 * 259 *
260 * g_o3d = document.o3d.o3d; 260 * g_o3d = document.o3d.o3d;
261 * ... 261 * ...
262 * 262 *
263 * var state = my_pack.createState("my_state"); 263 * var state = my_pack.createState("my_state");
264 * 264 *
265 * 265 *
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 break; 494 break;
495 } 495 }
496 return this.gl.KEEP; 496 return this.gl.KEEP;
497 }; 497 };
498 498
499 499
500 o3d.State.prototype.set = function() { 500 o3d.State.prototype.set = function() {
501 var stateParams = this.state_params_; 501 var stateParams = this.state_params_;
502 502
503 if (stateParams['AlphaBlendEnable'].value) { 503 if (stateParams['AlphaBlendEnable'].value) {
504 this.gl.enable(this.gl.ALPHA); 504 this.gl.enable(this.gl.BLEND);
505 } else { 505 } else {
506 this.gl.disable(this.gl.ALPHA); 506 this.gl.disable(this.gl.BLEND);
507 } 507 }
508 508
509 if (stateParams['SeparateAlphaBlendEnable'].value) { 509 if (stateParams['SeparateAlphaBlendEnable'].value) {
510 this.gl.blendFuncSeparate( 510 this.gl.blendFuncSeparate(
511 this.convertBlendFunc(stateParams['SourceBlendFunction'].value), 511 this.convertBlendFunc(stateParams['SourceBlendFunction'].value),
512 this.convertBlendFunc(stateParams['DestinationBlendFunction'].value), 512 this.convertBlendFunc(stateParams['DestinationBlendFunction'].value),
513 this.convertBlendFunc(stateParams['SourceBlendAlphaFunction'].value), 513 this.convertBlendFunc(stateParams['SourceBlendAlphaFunction'].value),
514 this.convertBlendFunc( 514 this.convertBlendFunc(
515 stateParams['DestinationBlendAlphaFunction'].value)); 515 stateParams['DestinationBlendAlphaFunction'].value));
516 this.gl.blendEquationSeparate(
517 this.convertBlendEquation(stateParams['BlendEquation'].value),
518 this.convertBlendEquation(stateParams['BlendAlphaEquation'].value));
516 } else { 519 } else {
517 this.gl.blendFuncSeparate( 520 this.gl.blendFunc(
518 this.convertBlendFunc(stateParams['SourceBlendFunction'].value), 521 this.convertBlendFunc(stateParams['SourceBlendFunction'].value),
519 this.convertBlendFunc(stateParams['DestinationBlendFunction'].value)); 522 this.convertBlendFunc(stateParams['DestinationBlendFunction'].value));
523 this.gl.blendEquation(
524 this.convertBlendEquation(stateParams['BlendEquation'].value));
520 } 525 }
521 526
522 switch (stateParams['CullMode'].value) { 527 switch (stateParams['CullMode'].value) {
523 case o3d.State.CULL_CW: 528 case o3d.State.CULL_CW:
524 this.gl.enable(this.gl.CULL_FACE); 529 this.gl.enable(this.gl.CULL_FACE);
525 this.gl.cullFace(this.gl.BACK); 530 this.gl.cullFace(this.gl.BACK);
526 break; 531 break;
527 case o3d.State.CULL_CCW: 532 case o3d.State.CULL_CCW:
528 this.gl.enable(this.gl.CULL_FACE); 533 this.gl.enable(this.gl.CULL_FACE);
529 this.gl.cullFace(this.gl.FRONT); 534 this.gl.cullFace(this.gl.FRONT);
530 break; 535 break;
531 default: 536 default:
532 this.gl.disable(this.gl.CULL_FACE); 537 this.gl.disable(this.gl.CULL_FACE);
533 break; 538 break;
534 } 539 }
535 540
536 if (stateParams['SeparateAlphaBlendEnable'].value) {
537 this.gl.blendEquationSeparate(
538 this.convertBlendEquation(stateParams['BlendEquation'].value),
539 this.convertBlendEquation(stateParams['BlendAlphaEquation'].value));
540 } else {
541 this.gl.blendEquation(
542 this.convertBlendEquation(stateParams['BlendEquation'].value));
543 }
544
545 if (stateParams['DitherEnable'].value) { 541 if (stateParams['DitherEnable'].value) {
546 this.gl.enable(this.gl.DITHER); 542 this.gl.enable(this.gl.DITHER);
547 } else { 543 } else {
548 this.gl.disable(this.gl.DITHER); 544 this.gl.disable(this.gl.DITHER);
549 } 545 }
550 546
551 if (stateParams['ZEnable'].value) { 547 if (stateParams['ZEnable'].value) {
552 this.gl.enable(this.gl.DEPTH_TEST); 548 this.gl.enable(this.gl.DEPTH_TEST);
553 this.gl.depthFunc( 549 this.gl.depthFunc(
554 this.convertCmpFunc(stateParams['ZComparisonFunction'].value)); 550 this.convertCmpFunc(stateParams['ZComparisonFunction'].value));
555 } else { 551 } else {
556 this.gl.disable(this.gl.DEPTH_TEST); 552 this.gl.disable(this.gl.DEPTH_TEST);
557 } 553 }
558 554
559 if (stateParams['StencilEnable'].value) { 555 if (stateParams['StencilEnable'].value) {
560 this.gl.enable(this.gl.STENCIL_TEST); 556 this.gl.enable(this.gl.STENCIL_TEST);
561 this.gl.stencilFunc( 557 this.gl.stencilFunc(
562 this.convertCmpFunc(stateParams['StencilComparisonFunction'].value)); 558 this.convertCmpFunc(stateParams['StencilComparisonFunction'].value));
563 } else { 559 } else {
564 this.gl.disable(this.gl.STENCIL_TEST); 560 this.gl.disable(this.gl.STENCIL_TEST);
565 } 561 }
566 }; 562 };
567 563
OLDNEW
« no previous file with comments | « samples/o3d-webgl/shape.js ('k') | samples/o3d-webgl/texture.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698