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

Side by Side Diff: command_buffer/service/win/d3d9/effect_d3d9.cc

Issue 212018: Change command buffer client code to use structures.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 11 years, 3 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 | « command_buffer/service/cross/mocks.h ('k') | command_buffer/service/win/d3d9/gapi_d3d9.cc » ('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 2009, Google Inc. 2 * Copyright 2009, 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 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 // case the creation fails. 527 // case the creation fails.
528 effects_.Destroy(id); 528 effects_.Destroy(id);
529 // Data is vp_main \0 fp_main \0 effect_text. 529 // Data is vp_main \0 fp_main \0 effect_text.
530 String vertex_program_entry; 530 String vertex_program_entry;
531 String fragment_program_entry; 531 String fragment_program_entry;
532 String effect_code; 532 String effect_code;
533 if (!ParseEffectData(size, data, 533 if (!ParseEffectData(size, data,
534 &vertex_program_entry, 534 &vertex_program_entry,
535 &fragment_program_entry, 535 &fragment_program_entry,
536 &effect_code)) { 536 &effect_code)) {
537 return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 537 return BufferSyncInterface::kParseInvalidArguments;
538 } 538 }
539 EffectD3D9 * effect = EffectD3D9::Create(this, effect_code, 539 EffectD3D9 * effect = EffectD3D9::Create(this, effect_code,
540 vertex_program_entry, 540 vertex_program_entry,
541 fragment_program_entry); 541 fragment_program_entry);
542 if (!effect) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 542 if (!effect) return BufferSyncInterface::kParseInvalidArguments;
543 effects_.Assign(id, effect); 543 effects_.Assign(id, effect);
544 return BufferSyncInterface::PARSE_NO_ERROR; 544 return BufferSyncInterface::kParseNoError;
545 } 545 }
546 546
547 // Destroys the Effect resource. 547 // Destroys the Effect resource.
548 // If destroying the current effect, dirty it. 548 // If destroying the current effect, dirty it.
549 BufferSyncInterface::ParseError GAPID3D9::DestroyEffect(ResourceID id) { 549 BufferSyncInterface::ParseError GAPID3D9::DestroyEffect(ResourceID id) {
550 if (id == current_effect_id_) DirtyEffect(); 550 if (id == current_effect_id_) DirtyEffect();
551 return effects_.Destroy(id) ? 551 return effects_.Destroy(id) ?
552 BufferSyncInterface::PARSE_NO_ERROR : 552 BufferSyncInterface::kParseNoError :
553 BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 553 BufferSyncInterface::kParseInvalidArguments;
554 } 554 }
555 555
556 // Sets the current effect ID, dirtying the current effect. 556 // Sets the current effect ID, dirtying the current effect.
557 BufferSyncInterface::ParseError GAPID3D9::SetEffect(ResourceID id) { 557 BufferSyncInterface::ParseError GAPID3D9::SetEffect(ResourceID id) {
558 DirtyEffect(); 558 DirtyEffect();
559 current_effect_id_ = id; 559 current_effect_id_ = id;
560 return BufferSyncInterface::PARSE_NO_ERROR; 560 return BufferSyncInterface::kParseNoError;
561 } 561 }
562 562
563 // Gets the param count from the effect and store it in the memory buffer. 563 // Gets the param count from the effect and store it in the memory buffer.
564 BufferSyncInterface::ParseError GAPID3D9::GetParamCount( 564 BufferSyncInterface::ParseError GAPID3D9::GetParamCount(
565 ResourceID id, 565 ResourceID id,
566 unsigned int size, 566 unsigned int size,
567 void *data) { 567 void *data) {
568 EffectD3D9 *effect = effects_.Get(id); 568 EffectD3D9 *effect = effects_.Get(id);
569 if (!effect || size < sizeof(Uint32)) // NOLINT 569 if (!effect || size < sizeof(Uint32)) // NOLINT
570 return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 570 return BufferSyncInterface::kParseInvalidArguments;
571 *static_cast<Uint32 *>(data) = effect->GetParamCount(); 571 *static_cast<Uint32 *>(data) = effect->GetParamCount();
572 return BufferSyncInterface::PARSE_NO_ERROR; 572 return BufferSyncInterface::kParseNoError;
573 } 573 }
574 574
575 BufferSyncInterface::ParseError GAPID3D9::CreateParam( 575 BufferSyncInterface::ParseError GAPID3D9::CreateParam(
576 ResourceID param_id, 576 ResourceID param_id,
577 ResourceID effect_id, 577 ResourceID effect_id,
578 unsigned int index) { 578 unsigned int index) {
579 EffectD3D9 *effect = effects_.Get(effect_id); 579 EffectD3D9 *effect = effects_.Get(effect_id);
580 if (!effect) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 580 if (!effect) return BufferSyncInterface::kParseInvalidArguments;
581 EffectParamD3D9 *param = effect->CreateParam(index); 581 EffectParamD3D9 *param = effect->CreateParam(index);
582 if (!param) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 582 if (!param) return BufferSyncInterface::kParseInvalidArguments;
583 effect_params_.Assign(param_id, param); 583 effect_params_.Assign(param_id, param);
584 return BufferSyncInterface::PARSE_NO_ERROR; 584 return BufferSyncInterface::kParseNoError;
585 } 585 }
586 586
587 BufferSyncInterface::ParseError GAPID3D9::CreateParamByName( 587 BufferSyncInterface::ParseError GAPID3D9::CreateParamByName(
588 ResourceID param_id, 588 ResourceID param_id,
589 ResourceID effect_id, 589 ResourceID effect_id,
590 unsigned int size, 590 unsigned int size,
591 const void *name) { 591 const void *name) {
592 EffectD3D9 *effect = effects_.Get(effect_id); 592 EffectD3D9 *effect = effects_.Get(effect_id);
593 if (!effect) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 593 if (!effect) return BufferSyncInterface::kParseInvalidArguments;
594 std::string string_name(static_cast<const char *>(name), size); 594 std::string string_name(static_cast<const char *>(name), size);
595 EffectParamD3D9 *param = effect->CreateParamByName(string_name.c_str()); 595 EffectParamD3D9 *param = effect->CreateParamByName(string_name.c_str());
596 if (!param) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 596 if (!param) return BufferSyncInterface::kParseInvalidArguments;
597 effect_params_.Assign(param_id, param); 597 effect_params_.Assign(param_id, param);
598 return BufferSyncInterface::PARSE_NO_ERROR; 598 return BufferSyncInterface::kParseNoError;
599 } 599 }
600 600
601 BufferSyncInterface::ParseError GAPID3D9::DestroyParam(ResourceID id) { 601 BufferSyncInterface::ParseError GAPID3D9::DestroyParam(ResourceID id) {
602 return effect_params_.Destroy(id) ? 602 return effect_params_.Destroy(id) ?
603 BufferSyncInterface::PARSE_NO_ERROR : 603 BufferSyncInterface::kParseNoError :
604 BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 604 BufferSyncInterface::kParseInvalidArguments;
605 } 605 }
606 606
607 BufferSyncInterface::ParseError GAPID3D9::SetParamData( 607 BufferSyncInterface::ParseError GAPID3D9::SetParamData(
608 ResourceID id, 608 ResourceID id,
609 unsigned int size, 609 unsigned int size,
610 const void *data) { 610 const void *data) {
611 EffectParamD3D9 *param = effect_params_.Get(id); 611 EffectParamD3D9 *param = effect_params_.Get(id);
612 if (!param) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 612 if (!param) return BufferSyncInterface::kParseInvalidArguments;
613 return param->SetData(this, size, data) ? 613 return param->SetData(this, size, data) ?
614 BufferSyncInterface::PARSE_NO_ERROR : 614 BufferSyncInterface::kParseNoError :
615 BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 615 BufferSyncInterface::kParseInvalidArguments;
616 } 616 }
617 617
618 BufferSyncInterface::ParseError GAPID3D9::GetParamDesc( 618 BufferSyncInterface::ParseError GAPID3D9::GetParamDesc(
619 ResourceID id, 619 ResourceID id,
620 unsigned int size, 620 unsigned int size,
621 void *data) { 621 void *data) {
622 EffectParamD3D9 *param = effect_params_.Get(id); 622 EffectParamD3D9 *param = effect_params_.Get(id);
623 if (!param) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 623 if (!param) return BufferSyncInterface::kParseInvalidArguments;
624 return param->GetDesc(size, data) ? 624 return param->GetDesc(size, data) ?
625 BufferSyncInterface::PARSE_NO_ERROR : 625 BufferSyncInterface::kParseNoError :
626 BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 626 BufferSyncInterface::kParseInvalidArguments;
627 } 627 }
628 628
629 // Gets the stream count from the effect and stores it in the memory buffer. 629 // Gets the stream count from the effect and stores it in the memory buffer.
630 BufferSyncInterface::ParseError GAPID3D9::GetStreamCount( 630 BufferSyncInterface::ParseError GAPID3D9::GetStreamCount(
631 ResourceID id, 631 ResourceID id,
632 unsigned int size, 632 unsigned int size,
633 void *data) { 633 void *data) {
634 EffectD3D9 *effect = effects_.Get(id); 634 EffectD3D9 *effect = effects_.Get(id);
635 if (!effect || size < sizeof(Uint32)) // NOLINT 635 if (!effect || size < sizeof(Uint32)) // NOLINT
636 return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 636 return BufferSyncInterface::kParseInvalidArguments;
637 *static_cast<Uint32 *>(data) = effect->GetStreamCount(); 637 *static_cast<Uint32 *>(data) = effect->GetStreamCount();
638 return BufferSyncInterface::PARSE_NO_ERROR; 638 return BufferSyncInterface::kParseNoError;
639 } 639 }
640 640
641 BufferSyncInterface::ParseError GAPID3D9::GetStreamDesc( 641 BufferSyncInterface::ParseError GAPID3D9::GetStreamDesc(
642 ResourceID id, 642 ResourceID id,
643 unsigned int index, 643 unsigned int index,
644 unsigned int size, 644 unsigned int size,
645 void *data) { 645 void *data) {
646 EffectD3D9 *effect = effects_.Get(id); 646 EffectD3D9 *effect = effects_.Get(id);
647 if (!effect) return BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 647 if (!effect) return BufferSyncInterface::kParseInvalidArguments;
648 return effect->GetStreamDesc(index, size, data) ? 648 return effect->GetStreamDesc(index, size, data) ?
649 BufferSyncInterface::PARSE_NO_ERROR : 649 BufferSyncInterface::kParseNoError :
650 BufferSyncInterface::PARSE_INVALID_ARGUMENTS; 650 BufferSyncInterface::kParseInvalidArguments;
651 } 651 }
652 652
653 653
654 // If the current effect is valid, call End on it, and tag for revalidation. 654 // If the current effect is valid, call End on it, and tag for revalidation.
655 void GAPID3D9::DirtyEffect() { 655 void GAPID3D9::DirtyEffect() {
656 if (validate_effect_) return; 656 if (validate_effect_) return;
657 DCHECK(current_effect_); 657 DCHECK(current_effect_);
658 current_effect_->End(this); 658 current_effect_->End(this);
659 current_effect_ = NULL; 659 current_effect_ = NULL;
660 validate_effect_ = true; 660 validate_effect_ = true;
661 } 661 }
662 662
663 // Gets the current effect, and calls Begin on it (if successful). 663 // Gets the current effect, and calls Begin on it (if successful).
664 // Should only be called if the current effect is not valid. 664 // Should only be called if the current effect is not valid.
665 bool GAPID3D9::ValidateEffect() { 665 bool GAPID3D9::ValidateEffect() {
666 DCHECK(validate_effect_); 666 DCHECK(validate_effect_);
667 DCHECK(!current_effect_); 667 DCHECK(!current_effect_);
668 current_effect_ = effects_.Get(current_effect_id_); 668 current_effect_ = effects_.Get(current_effect_id_);
669 if (!current_effect_) return false; 669 if (!current_effect_) return false;
670 validate_effect_ = false; 670 validate_effect_ = false;
671 return current_effect_->Begin(this); 671 return current_effect_->Begin(this);
672 } 672 }
673 673
674 } // namespace command_buffer 674 } // namespace command_buffer
675 } // namespace o3d 675 } // namespace o3d
OLDNEW
« no previous file with comments | « command_buffer/service/cross/mocks.h ('k') | command_buffer/service/win/d3d9/gapi_d3d9.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698