Revision fb001aff
Added by Leszek Koltunski almost 5 years ago
| src/main/java/org/distorted/library/effectqueue/EffectQueue.java | ||
|---|---|---|
| 418 | 418 |
} |
| 419 | 419 |
} |
| 420 | 420 |
|
| 421 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 422 |
|
|
| 423 |
public void markForDeletion() |
|
| 424 |
{
|
|
| 425 |
mUBP.markForDeletion(); |
|
| 426 |
} |
|
| 427 |
|
|
| 421 | 428 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 422 | 429 |
|
| 423 | 430 |
public void doWork() |
| src/main/java/org/distorted/library/effectqueue/UniformBlockProperties.java | ||
|---|---|---|
| 94 | 94 |
mUBO.invalidate(); |
| 95 | 95 |
} |
| 96 | 96 |
|
| 97 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 98 |
|
|
| 99 |
void markForDeletion() |
|
| 100 |
{
|
|
| 101 |
mUBO.markForDeletion(); |
|
| 102 |
} |
|
| 103 |
|
|
| 97 | 104 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 98 | 105 |
|
| 99 | 106 |
void print(int num) |
| src/main/java/org/distorted/library/main/DistortedEffects.java | ||
|---|---|---|
| 181 | 181 |
return mQueues[num].add(effect,position); |
| 182 | 182 |
} |
| 183 | 183 |
|
| 184 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 185 |
/** |
|
| 186 |
* Mark the underlying OpenGL object for deletion. Actual deletion will take place on the next render. |
|
| 187 |
*/ |
|
| 188 |
public void markForDeletion() |
|
| 189 |
{
|
|
| 190 |
for( int i=0; i<EffectType.LENGTH; i++) |
|
| 191 |
{
|
|
| 192 |
mQueues[i].markForDeletion(); |
|
| 193 |
} |
|
| 194 |
} |
|
| 195 |
|
|
| 184 | 196 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 185 | 197 |
/** |
| 186 | 198 |
* Return number of effects of the given type currently in the Queue. |
| src/main/java/org/distorted/library/main/InternalMaster.java | ||
|---|---|---|
| 19 | 19 |
|
| 20 | 20 |
package org.distorted.library.main; |
| 21 | 21 |
|
| 22 |
import java.util.Set;
|
|
| 22 |
import java.util.ArrayList;
|
|
| 23 | 23 |
|
| 24 | 24 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 25 | 25 |
/** |
| ... | ... | |
| 48 | 48 |
|
| 49 | 49 |
static boolean toDo() |
| 50 | 50 |
{
|
| 51 |
Set<Slave> set = InternalStackFrameList.getSet(); |
|
| 52 |
int numSlaves = set.size(); |
|
| 51 |
Slave slave; |
|
| 52 |
ArrayList<Slave> list = InternalStackFrameList.getSet(); |
|
| 53 |
int numSlaves = list.size(); |
|
| 53 | 54 |
|
| 54 |
if( numSlaves>0 )
|
|
| 55 |
try
|
|
| 55 | 56 |
{
|
| 56 |
for(Slave slave: set)
|
|
| 57 |
for(int i=0; i<numSlaves; i++)
|
|
| 57 | 58 |
{
|
| 58 |
if( slave!=null ) slave.doWork(); |
|
| 59 |
} |
|
| 60 |
return true; |
|
| 59 |
slave = list.remove(0); |
|
| 60 |
if( slave!=null ) slave.doWork(); |
|
| 61 |
} |
|
| 62 |
} |
|
| 63 |
catch(IndexOutOfBoundsException ie) |
|
| 64 |
{
|
|
| 65 |
// onDestroy must have been called, ignore |
|
| 61 | 66 |
} |
| 62 | 67 |
|
| 63 |
return false;
|
|
| 68 |
return numSlaves>0;
|
|
| 64 | 69 |
} |
| 65 | 70 |
|
| 66 | 71 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 67 | 72 |
|
| 68 | 73 |
public static void newSlave(Slave s) |
| 69 | 74 |
{
|
| 70 |
InternalStackFrameList.getSet().add(s); |
|
| 75 |
ArrayList<Slave> list = InternalStackFrameList.getSet(); |
|
| 76 |
int num = list.size(); |
|
| 77 |
boolean found = false; |
|
| 78 |
Slave tmp; |
|
| 79 |
|
|
| 80 |
try |
|
| 81 |
{
|
|
| 82 |
for(int i=0; i<num; i++) |
|
| 83 |
{
|
|
| 84 |
tmp = list.get(i); |
|
| 85 |
|
|
| 86 |
if( tmp==s ) |
|
| 87 |
{
|
|
| 88 |
found = true; |
|
| 89 |
break; |
|
| 90 |
} |
|
| 91 |
} |
|
| 92 |
} |
|
| 93 |
catch(IndexOutOfBoundsException ie) |
|
| 94 |
{
|
|
| 95 |
// onDestroy must have been called, ignore |
|
| 96 |
} |
|
| 97 |
|
|
| 98 |
if( !found ) list.add(s); |
|
| 71 | 99 |
} |
| 72 | 100 |
} |
| src/main/java/org/distorted/library/main/InternalStackFrame.java | ||
|---|---|---|
| 23 | 23 |
|
| 24 | 24 |
import java.util.ArrayList; |
| 25 | 25 |
import java.util.HashMap; |
| 26 |
import java.util.HashSet; |
|
| 27 | 26 |
import java.util.LinkedList; |
| 28 |
import java.util.Set; |
|
| 29 | 27 |
|
| 30 | 28 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 31 | 29 |
|
| ... | ... | |
| 72 | 70 |
private long mNextNodeID; |
| 73 | 71 |
|
| 74 | 72 |
////////////////////////////////////////////////////////////////// |
| 75 |
private Set<InternalMaster.Slave> mSlaves; // InternalMaster
|
|
| 73 |
private ArrayList<InternalMaster.Slave> mSlaves; // InternalMaster
|
|
| 76 | 74 |
|
| 77 | 75 |
////////////////////////////////////////////////////////////////// EffectQueue |
| 78 | 76 |
private long mNextQueueID; // |
| ... | ... | |
| 86 | 84 |
mDoneList = new LinkedList<>(); |
| 87 | 85 |
mToDoMap = new HashMap<>(); |
| 88 | 86 |
mMapNodeID = new HashMap<>(); |
| 89 |
mSlaves = new HashSet<>();
|
|
| 87 |
mSlaves = new ArrayList<>();
|
|
| 90 | 88 |
mMapID = new HashMap<>(); |
| 91 | 89 |
mNextEffectsID= 0; |
| 92 | 90 |
mNextClientID = 0; |
| ... | ... | |
| 339 | 337 |
|
| 340 | 338 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 341 | 339 |
|
| 342 |
Set<InternalMaster.Slave> getSet()
|
|
| 340 |
ArrayList<InternalMaster.Slave> getSet()
|
|
| 343 | 341 |
{
|
| 344 | 342 |
return mSlaves; |
| 345 | 343 |
} |
| src/main/java/org/distorted/library/main/InternalStackFrameList.java | ||
|---|---|---|
| 254 | 254 |
|
| 255 | 255 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 256 | 256 |
|
| 257 |
static Set<InternalMaster.Slave> getSet()
|
|
| 257 |
static ArrayList<InternalMaster.Slave> getSet()
|
|
| 258 | 258 |
{
|
| 259 | 259 |
return mCurrentFrame.getSet(); |
| 260 | 260 |
} |
Also available in: Unified diff
Plug two more memory leaks. It should be fine now.