Adding ViroKit. Needs AWSCore :(

This commit is contained in:
John Lyon-Smith
2018-03-27 17:46:15 -07:00
parent 2ab15e7dc1
commit 02e06dface
844 changed files with 86921 additions and 21 deletions

View File

@@ -0,0 +1,72 @@
//
// VROAllocationTracker.h
// ViroRenderer
//
// Created by Raj Advani on 10/21/15.
// Copyright © 2015 Viro Media. All rights reserved.
//
#ifndef __VROAllocationTracker__
#define __VROAllocationTracker__
#include <iostream>
#define TRACK_MEMORY_ALLOCATIONS 0
#if TRACK_MEMORY_ALLOCATIONS
#define ALLOCATION_TRACKER_SET(x, bytes) VROAllocationTracker::set(VROAllocationBucket::x, bytes)
#define ALLOCATION_TRACKER_ADD(x, bytes) VROAllocationTracker::add(VROAllocationBucket::x, bytes)
#define ALLOCATION_TRACKER_SUB(x, bytes) VROAllocationTracker::subtract(VROAllocationBucket::x, bytes)
#define ALLOCATION_TRACKER_RESIZE(x, bytesOld, bytesNew) VROAllocationTracker::resize(VROAllocationBucket::x, bytesOld, bytesNew)
#define ALLOCATION_TRACKER_PRINT() VROAllocationTracker::print()
#define ALLOCATION_TRACKER_PRINT_NOW() VROAllocationTracker::printNow()
#define VRO_MALLOC(x, bytes) malloc(bytes), ALLOCATION_TRACKER_ADD(x, bytes)
#define VRO_FREE(x, ptr, bytes) free(ptr), ALLOCATION_TRACKER_SUB(x, bytes)
#define VRO_REALLOC(x, ptr, bytesOld, bytesNew) realloc(ptr, bytesNew), ALLOCATION_TRACKER_RESIZE(x, bytesOld, bytesNew)
#else
#define ALLOCATION_TRACKER_SET(x, bytes) ((void)0)
#define ALLOCATION_TRACKER_ADD(x, bytes) ((void)0)
#define ALLOCATION_TRACKER_SUB(x, bytes) ((void)0)
#define ALLOCATION_TRACKER_RESIZE(x, bytesOld, bytesNew) ((void)0)
#define ALLOCATION_TRACKER_PRINT() ((void)0)
#define ALLOCATION_TRACKER_PRINT_NOW() ((void)0)
#define VRO_MALLOC(x, bytes) malloc(bytes)
#define VRO_FREE(x, ptr, bytes) free(ptr)
#define VRO_REALLOC(x, ptr, bytesOld, bytesNew) realloc(ptr, bytesNew)
#endif
enum class VROAllocationBucket {
Scenes,
Nodes,
Geometry,
Materials,
MaterialSubstrates,
Textures,
TextureSubstrates,
Shaders,
ShaderModifiers,
VideoTextures,
VideoTextureCaches,
Typefaces,
Glyphs,
RenderTargets,
NUM_BUCKETS
};
enum class VROLayerType : int8_t;
class VROAllocationTracker {
public:
static void set(VROAllocationBucket bucket, uint32_t bytes);
static void add(VROAllocationBucket bucket, uint32_t bytes);
static void subtract(VROAllocationBucket bucket, uint32_t bytes);
static void resize(VROAllocationBucket bucket, uint32_t bytesOld, uint32_t bytesNew);
static void print();
static void printNow();
};
#endif /* defined(__VROAllocationTracker__) */