Revision dbe3079d
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/library/mesh/DeferredJobs.java | ||
|---|---|---|
| 100 | 100 | break; | 
| 101 | 101 | case JOB_TYPE_COPY : mTarget.copy(mSource[0]); | 
| 102 | 102 | break; | 
| 103 | case JOB_TYPE_TEXTURE : mTarget.textureMap(mMaps); | |
| 103 |         case JOB_TYPE_TEXTURE  : mTarget.textureMap(mMaps,mComp);
 | |
| 104 | 104 | break; | 
| 105 | 105 | case JOB_TYPE_ASSOC : mTarget.setEffectAssociationNow(mComp,mAndAssoc,mEquAssoc); | 
| 106 | 106 | break; | 
| ... | ... | |
| 335 | 335 |  | 
| 336 | 336 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 337 | 337 |  | 
| 338 | static JobNode textureMap(MeshBase target, Static4D[] maps) | |
| 338 |   static JobNode textureMap(MeshBase target, Static4D[] maps, int comp)
 | |
| 339 | 339 |     {
 | 
| 340 | 340 | JobNode jn = target.mJobNode[0]; | 
| 341 |     Job job = new Job(JOB_TYPE_TEXTURE,target,null,null,null,maps,0,0,0);
 | |
| 341 |     Job job = new Job(JOB_TYPE_TEXTURE,target,null,null,null,maps,comp,0,0);
 | |
| 342 | 342 | JobNode node = new JobNode(job); | 
| 343 | 343 | node.mPrevJobs.add(jn); | 
| 344 | 344 | jn.mNextJobs.add(node); | 
| src/main/java/org/distorted/library/mesh/MeshBase.java | ||
|---|---|---|
| 490 | 490 |  | 
| 491 | 491 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 492 | 492 |  | 
| 493 | void textureMap(Static4D[] maps) | |
| 493 |    void textureMap(Static4D[] maps, int startComponent)
 | |
| 494 | 494 |      {
 | 
| 495 | 495 | int num_comp = mTexComponent.size(); | 
| 496 | 496 | int num_maps = maps.length; | 
| 497 | int min = Math.min(num_comp, num_maps); | |
| 497 |      int min = Math.min(num_comp-startComponent, num_maps);
 | |
| 498 | 498 | int vertex = 0; | 
| 499 | 499 | Static4D newMap, oldMap; | 
| 500 | 500 | TexComponent comp; | 
| ... | ... | |
| 503 | 503 | for(int i=0; i<min; i++) | 
| 504 | 504 |        {
 | 
| 505 | 505 | newMap = maps[i]; | 
| 506 | comp = mTexComponent.get(i); | |
| 506 |        comp = mTexComponent.get(i+startComponent);
 | |
| 507 | 507 |  | 
| 508 | 508 | if( newMap!=null ) | 
| 509 | 509 |          {
 | 
| ... | ... | |
| 852 | 852 | * | 
| 853 | 853 | * A map's width and height have to be non-zero (but can be negative!) | 
| 854 | 854 | * | 
| 855 | * @param maps List of texture maps to apply to the texture's components. | |
| 855 | * @param maps List of texture maps to apply to the texture's components. | |
| 856 | * @param startComponent the component the first of the maps refers to. | |
| 856 | 857 | */ | 
| 857 | public void setTextureMap(Static4D[] maps) | |
| 858 |    public void setTextureMap(Static4D[] maps, int startComponent)
 | |
| 858 | 859 |      {
 | 
| 859 | 860 | if( mJobNode[0]==null ) | 
| 860 | 861 |        {
 | 
| 861 | textureMap(maps); | |
| 862 |        textureMap(maps,startComponent);
 | |
| 862 | 863 | } | 
| 863 | 864 | else | 
| 864 | 865 |        {
 | 
| 865 | mJobNode[0] = DeferredJobs.textureMap(this,maps); | |
| 866 |        mJobNode[0] = DeferredJobs.textureMap(this,maps,startComponent);
 | |
| 866 | 867 | } | 
| 867 | 868 | } | 
| 868 | 869 |  | 
Also available in: Unified diff
Extend the MeshBase.setTextureMaps API so that we are able to set a single texture map to a single texture component, or a few consecutive at a time, not necessarily starting from component 0.