Skip to content

Commit 8ed81c6

Browse files
committed
release v0.1.1
1 parent 47cbfe5 commit 8ed81c6

3 files changed

Lines changed: 7 additions & 96 deletions

File tree

CppMode.zip

16.5 MB
Binary file not shown.

src/Processing.h

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,59 +1665,6 @@ class StringList {
16651665
};
16661666

16671667
// =============================================================================
1668-
// PList<T> -- std::vector wrapper that works inside the Processing namespace
1669-
// Use instead of std::vector<T> in sketches to avoid namespace conflicts.
1670-
// All Java ArrayList methods supported: add, get, set, remove, size, clear,
1671-
// contains, indexOf, sort, shuffle, isEmpty.
1672-
// =============================================================================
1673-
template<typename T>
1674-
class PList {
1675-
public:
1676-
::std::vector<T> _data;
1677-
1678-
PList() {}
1679-
PList(::std::initializer_list<T> il) : _data(il) {}
1680-
1681-
// Core
1682-
void add(const T& v) { _data.push_back(v); }
1683-
void add(int i, const T& v) { _data.insert(_data.begin()+i, v); }
1684-
T& get(int i) { return _data[i]; }
1685-
const T& get(int i) const { return _data[i]; }
1686-
void set(int i, const T& v) { _data[i] = v; }
1687-
void remove(int i) { _data.erase(_data.begin()+i); }
1688-
bool remove(const T& v) { auto it=::std::find(_data.begin(),_data.end(),v); if(it==_data.end()) return false; _data.erase(it); return true; }
1689-
int size() const { return (int)_data.size(); }
1690-
bool isEmpty() const { return _data.empty(); }
1691-
void clear() { _data.clear(); }
1692-
bool contains(const T& v) const { return ::std::find(_data.begin(),_data.end(),v)!=_data.end(); }
1693-
int indexOf(const T& v) const { auto it=::std::find(_data.begin(),_data.end(),v); return it==_data.end()?-1:(int)(it-_data.begin()); }
1694-
1695-
// Sort / shuffle
1696-
void sort() { ::std::sort(_data.begin(), _data.end()); }
1697-
void reverse() { ::std::reverse(_data.begin(), _data.end()); }
1698-
void shuffle() {
1699-
for(int i=size()-1;i>0;i--){
1700-
int j=(int)(::std::rand()%(i+1));
1701-
::std::swap(_data[i],_data[j]);
1702-
}
1703-
}
1704-
1705-
// Operator[] for array-style access
1706-
T& operator[](int i) { return _data[i]; }
1707-
const T& operator[](int i) const { return _data[i]; }
1708-
1709-
// Range-for support
1710-
auto begin() { return _data.begin(); }
1711-
auto end() { return _data.end(); }
1712-
auto begin() const { return _data.begin(); }
1713-
auto end() const { return _data.end(); }
1714-
1715-
// Append all from another PList
1716-
void addAll(const PList<T>& other) { for(auto& v:other._data) _data.push_back(v); }
1717-
};
1718-
1719-
// Convenience aliases matching Java Processing names
1720-
17211668
// PMap<K,V> -- thin std::unordered_map wrapper
17221669
template<typename K, typename V>
17231670
class PMap {
@@ -2036,32 +1983,7 @@ void resetShader();
20361983
// GENERIC ARRAYLIST / HASHMAP -- templated Java-style collections
20371984
// =============================================================================
20381985

2039-
template<typename T>
2040-
class ArrayList {
2041-
public:
2042-
std::vector<T> data;
2043-
2044-
ArrayList() = default;
2045-
2046-
void add(const T& v) { data.push_back(v); }
2047-
void add(int i, const T& v) { data.insert(data.begin()+i,v); }
2048-
T& get(int i) { return data[i]; }
2049-
const T& get(int i) const { return data[i]; }
2050-
void set(int i, const T& v) { data[i]=v; }
2051-
void remove(int i) { data.erase(data.begin()+i); }
2052-
bool remove(const T& v) { auto it=std::find(data.begin(),data.end(),v); if(it==data.end())return false; data.erase(it); return true; }
2053-
int size() const { return (int)data.size(); }
2054-
bool isEmpty() const { return data.empty(); }
2055-
void clear() { data.clear(); }
2056-
bool contains(const T& v) const { return std::find(data.begin(),data.end(),v)!=data.end(); }
2057-
int indexOf(const T& v) const { auto it=std::find(data.begin(),data.end(),v); return it==data.end()?-1:(int)(it-data.begin()); }
2058-
void sort() { std::sort(data.begin(),data.end()); }
2059-
2060-
T& operator[](int i) { return data[i]; }
2061-
const T& operator[](int i) const { return data[i]; }
2062-
typename std::vector<T>::iterator begin() { return data.begin(); }
2063-
typename std::vector<T>::iterator end() { return data.end(); }
2064-
};
1986+
20651987

20661988
template<typename K, typename V>
20671989
class HashMap {

src/main.cpp

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,24 @@
11
#include "Processing.h"
2-
#include <string>
32
#include <cstdlib>
3+
#include <string>
44

5-
extern std::string g_sketchName;
5+
// Forward declare so we can set it before run()
6+
// It's defined in Processing.cpp at global scope
7+
namespace Processing { extern std::string g_sketchName; }
68

79
#ifdef _WIN32
810
#include <windows.h>
911
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
10-
// Get sketch name from env var (set by launcher) or compile-time define
11-
const char* envName = std::getenv("PROCESSING_SKETCH_NAME");
12-
if (envName && envName[0]) {
13-
g_sketchName = envName;
14-
}
1512
#ifdef PROCESSING_SKETCH_NAME
16-
else {
17-
g_sketchName = PROCESSING_SKETCH_NAME;
18-
}
13+
Processing::g_sketchName = PROCESSING_SKETCH_NAME;
1914
#endif
2015
Processing::run();
2116
return 0;
2217
}
2318
#else
2419
int main(int argc, char** argv) {
25-
const char* envName = std::getenv("PROCESSING_SKETCH_NAME");
26-
if (envName && envName[0]) {
27-
g_sketchName = envName;
28-
}
2920
#ifdef PROCESSING_SKETCH_NAME
30-
else {
31-
g_sketchName = PROCESSING_SKETCH_NAME;
32-
}
21+
Processing::g_sketchName = PROCESSING_SKETCH_NAME;
3322
#endif
3423
for (int i = 1; i < argc; i++)
3524
if (std::string(argv[i]) == "--debug")

0 commit comments

Comments
 (0)