1
0
mirror of https://github.com/thes3m/XNI synced 2024-12-26 13:26:06 +01:00
XNI/Classes/System/AdaptiveArray.m
Matej Jan 668bba9869 Added user primitive rendering.
git-svn-id: http://xni.googlecode.com/svn/XNI@23 ac433895-eea3-a490-d80a-17149a75e588
2010-09-21 21:46:53 +00:00

51 lines
932 B
Objective-C

//
// AdaptiveArray.m
// XNI
//
// Created by Matej Jan on 21.9.10.
// Copyright 2010 Retronator. All rights reserved.
//
#import "AdaptiveArray.h"
@implementation AdaptiveArray
- (id) initWithItemSize:(int)theItemSize initialCapacity:(int)theCapacity {
if (self = [super init]) {
itemSize = theItemSize;
capacity = theCapacity;
array = malloc(capacity * itemSize);
}
return self;
}
@synthesize itemSize;
@synthesize array;
@synthesize count;
- (void) addItem:(void *)item {
if (count == capacity) {
// Resize array
void* newArray = malloc(capacity * 2 * itemSize);
memcpy(newArray, array, capacity * itemSize);
free(array);
array = newArray;
capacity *= 2;
}
memcpy(array + count * itemSize, item, itemSize);
count++;
}
- (void) clear {
count = 0;
}
- (void) dealloc
{
free(array);
[super dealloc];
}
@end