cmake_minimum_required(VERSION 2.6) | |||||
project(swan) | |||||
find_package(SFML 2.5 COMPONENTS graphics system window REQUIRED) | |||||
include_directories("${PROJECT_SOURCE_DIR}/libswan/include") | |||||
add_subdirectory(libswan) | |||||
add_subdirectory(core.mod) | |||||
add_executable(swan src/main.cc) | |||||
target_link_libraries(swan libswan sfml-graphics sfml-system sfml-window dl) |
# Makefile generated by smake. | |||||
PROJNAME = swan | |||||
PROJTYPE = exe | |||||
SRCS = src/main.cc | |||||
HDRS = | |||||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||||
PUBLICHDRS = | |||||
# Defaults | |||||
PKGS = | |||||
EXTRADEPS = libswan/src/Body.cc libswan/src/Chunk.cc libswan/src/Game.cc libswan/src/Mod.cc libswan/src/Player.cc libswan/src/World.cc libswan/src/WorldPlane.cc libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||||
EXTRAPUBLICDEPS = libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||||
CONFIG ?= release | |||||
BUILDDIR ?= build | |||||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||||
WARNINGS = -Wall -Wextra -Wno-unused-parameter | |||||
SMAKEFILE ?= Smakefile | |||||
DESTDIR ?= | |||||
PREFIX ?= /usr/local | |||||
PHONIES = dumpdeps dumppublicdeps dumpprojtype clean cleanall | |||||
CONFIGS = release sanitize debug | |||||
PKG_CONFIG ?= pkg-config | |||||
AR ?= ar | |||||
CCOPTS = -Iinclude -isystem libswan/include | |||||
CCOPTS_release = -O2 -flto | |||||
CCOPTS_debug = -g | |||||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||||
LDOPTS = -Llibswan/build/$(CONFIG) | |||||
LDOPTS_release = -flto | |||||
LDOPTS_debug = | |||||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||||
runpfx = @echo $(1) $(2) && $(2) | |||||
.PHONY: all | |||||
all: $(BUILD)/$(PROJNAME) | |||||
-include $(SMAKEFILE) | |||||
ifeq ($(filter $(CONFIGS),$(CONFIG)),) | |||||
ifeq ($(filter cleanall,$(MAKECMDGOALS)),) | |||||
$(error Unknown config '$(CONFIG)'. Supported configs: $(CONFIGS)) | |||||
endif | |||||
endif | |||||
ifneq ($(PKGS),) | |||||
CCOPTS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) | |||||
LDOPTS += $(shell $(PKG_CONFIG) --libs $(PKGS)) | |||||
endif | |||||
CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||||
$(BUILD)/$(PROJNAME): libswan/build/$(CONFIG)/.built $(OBJS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) $(LDFLAGS)) | |||||
touch $(BUILD)/.built | |||||
@echo '(OK)' Created $@. | |||||
$(PROJNAME): $(BUILD)/$(PROJNAME) | |||||
cp $< $@ | |||||
@echo '(OK)' Created $@. | |||||
libswan/build/$(CONFIG)/.built: libswan/src/Body.cc libswan/src/Chunk.cc libswan/src/Game.cc libswan/src/Mod.cc libswan/src/Player.cc libswan/src/World.cc libswan/src/WorldPlane.cc libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||||
$(call runpfx,'(SUB)',$(MAKE) -C libswan) | |||||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||||
$(BUILD)/obj/%.cc.o: src/%.cc $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CXX)',$(CXX) -o $@ -c $< $(CXXFLAGS)) | |||||
$(BUILD)/dep/%.c.d: src/%.c $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CC) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CFLAGS)) | |||||
$(BUILD)/dep/%.cc.d: src/%.cc $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CXX) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CXXFLAGS)) | |||||
.PHONY: install | |||||
install: $(BUILD)/$(PROJNAME) | |||||
mkdir -p $(DESTDIR)$(PREFIX)/bin | |||||
cp -f $^ $(DESTDIR)$(PREFIX)/bin | |||||
chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROJNAME) | |||||
$(MAKE) -C libswan install | |||||
.PHONY: uninstall | |||||
uninstall: | |||||
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROJNAME) | |||||
$(MAKE) -C libswan uninstall | |||||
.PHONY: clean | |||||
clean: | |||||
rm -rf $(PROJNAME) $(BUILD) | |||||
$(MAKE) -C libswan clean | |||||
.PHONY: cleanall | |||||
cleanall: | |||||
rm -rf $(BUILDDIR) | |||||
$(MAKE) -C libswan cleanall | |||||
.PHONY: dumpdeps | |||||
dumpdeps: | |||||
@echo $(addprefix $(PREPEND),$(SRCS) $(HDRS) $(EXTRADEPS)) | |||||
.PHONY: dumppublicdeps | |||||
dumppublicdeps: | |||||
@echo $(addprefix $(PREPEND),$(PUBLICHDRS) $(EXTRAPUBLICDEPS)) | |||||
.PHONY: dumpprojtype | |||||
dumpprojtype: | |||||
@echo $(PROJTYPE) | |||||
ifeq ($(filter $(PHONIES),$(MAKECMDGOALS)),) | |||||
-include $(DEPS) | |||||
endif |
PROJNAME = swan | |||||
PROJTYPE = exe | |||||
PKGS = sfml-all | |||||
LDOPTS += -lstdc++ -ldl -lswan -Wl,--rpath=libswan/build/$(CONFIG) | |||||
DEPENDS = libswan |
add_library(core.mod SHARED src/mod.cc) | |||||
set_target_properties(core.mod PROPERTIES OUTPUT_NAME core.mod PREFIX "") |
# Makefile generated by smake. | |||||
PROJNAME = core.mod | |||||
PROJTYPE = solib | |||||
SRCS = src/mod.cc | |||||
HDRS = | |||||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||||
PUBLICHDRS = | |||||
# Defaults | |||||
PKGS = | |||||
EXTRADEPS = ../libswan/src/Body.cc ../libswan/src/Chunk.cc ../libswan/src/Game.cc ../libswan/src/Mod.cc ../libswan/src/Player.cc ../libswan/src/World.cc ../libswan/src/WorldPlane.cc ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||||
EXTRAPUBLICDEPS = ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||||
CONFIG ?= release | |||||
BUILDDIR ?= build | |||||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||||
WARNINGS = -Wall -Wextra -Wno-unused-parameter | |||||
SMAKEFILE ?= Smakefile | |||||
DESTDIR ?= | |||||
PREFIX ?= /usr/local | |||||
PHONIES = dumpdeps dumppublicdeps dumpprojtype clean cleanall | |||||
CONFIGS = release sanitize debug | |||||
PKG_CONFIG ?= pkg-config | |||||
AR ?= ar | |||||
CCOPTS = -Iinclude -fPIC -isystem ../libswan/include | |||||
CCOPTS_release = -O2 -flto | |||||
CCOPTS_debug = -g | |||||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||||
LDOPTS = -L../libswan/build/$(CONFIG) | |||||
LDOPTS_release = -flto | |||||
LDOPTS_debug = | |||||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||||
runpfx = @echo $(1) $(2) && $(2) | |||||
.PHONY: all | |||||
all: $(BUILD)/$(PROJNAME).so | |||||
-include $(SMAKEFILE) | |||||
ifeq ($(filter $(CONFIGS),$(CONFIG)),) | |||||
ifeq ($(filter cleanall,$(MAKECMDGOALS)),) | |||||
$(error Unknown config '$(CONFIG)'. Supported configs: $(CONFIGS)) | |||||
endif | |||||
endif | |||||
ifneq ($(PKGS),) | |||||
CCOPTS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) | |||||
LDOPTS += $(shell $(PKG_CONFIG) --libs $(PKGS)) | |||||
endif | |||||
CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||||
$(BUILD)/$(PROJNAME).so: ../libswan/build/$(CONFIG)/.built $(OBJS) $(EXTRADEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) -shared $(LDLAGS)) | |||||
touch $(BUILD)/.built | |||||
@echo '(OK)' Created $@. | |||||
../libswan/build/$(CONFIG)/.built: ../libswan/src/Body.cc ../libswan/src/Chunk.cc ../libswan/src/Game.cc ../libswan/src/Mod.cc ../libswan/src/Player.cc ../libswan/src/World.cc ../libswan/src/WorldPlane.cc ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||||
$(call runpfx,'(SUB)',$(MAKE) -C ../libswan) | |||||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||||
$(BUILD)/obj/%.cc.o: src/%.cc $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CXX)',$(CXX) -o $@ -c $< $(CXXFLAGS)) | |||||
$(BUILD)/dep/%.c.d: src/%.c $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CC) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CFLAGS)) | |||||
$(BUILD)/dep/%.cc.d: src/%.cc $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CXX) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CXXFLAGS)) | |||||
.PHONY: install | |||||
install: $(BUILD)/$(PROJNAME).so | |||||
mkdir -p $(DESTDIR)$(PREFIX)/lib | |||||
cp -f $^ $(DESTDIR)$(PREFIX)/lib | |||||
chmod 755 $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||||
mkdir -p $(DESTDIR)$(PREFIX)/include | |||||
cp -rf include/* $(DESTDIR)$(PREFIX)/include | |||||
$(MAKE) -C ../libswan install | |||||
.PHONY: uninstall | |||||
uninstall: | |||||
rm -f $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||||
rm -rf $(patsubst include/%,$(DESTDIR)$(PREFIX)/include/%,$(wildcard include/*)) | |||||
$(MAKE) -C ../libswan uninstall | |||||
.PHONY: clean | |||||
clean: | |||||
rm -rf $(PROJNAME) $(BUILD) | |||||
$(MAKE) -C ../libswan clean | |||||
.PHONY: cleanall | |||||
cleanall: | |||||
rm -rf $(BUILDDIR) | |||||
$(MAKE) -C ../libswan cleanall | |||||
.PHONY: dumpdeps | |||||
dumpdeps: | |||||
@echo $(addprefix $(PREPEND),$(SRCS) $(HDRS) $(EXTRADEPS)) | |||||
.PHONY: dumppublicdeps | |||||
dumppublicdeps: | |||||
@echo $(addprefix $(PREPEND),$(PUBLICHDRS) $(EXTRAPUBLICDEPS)) | |||||
.PHONY: dumpprojtype | |||||
dumpprojtype: | |||||
@echo $(PROJTYPE) | |||||
ifeq ($(filter $(PHONIES),$(MAKECMDGOALS)),) | |||||
-include $(DEPS) | |||||
endif |
PROJNAME = core.mod | |||||
PROJTYPE = solib | |||||
DEPENDS = ../libswan |
include_directories("${CMAKE_CURRENT_LIST_DIR}/include/swan") | |||||
add_library(libswan SHARED | |||||
src/Body.cc | |||||
src/Chunk.cc | |||||
src/Game.cc | |||||
src/Mod.cc | |||||
src/Player.cc | |||||
src/World.cc | |||||
src/WorldPlane.cc) | |||||
set_target_properties(libswan PROPERTIES OUTPUT_NAME swan) |
# Makefile generated by smake. | |||||
PROJNAME = libswan | |||||
PROJTYPE = solib | |||||
SRCS = src/Body.cc src/Chunk.cc src/Game.cc src/Mod.cc src/Player.cc src/World.cc src/WorldPlane.cc | |||||
HDRS = include/swan/Chunk.h include/swan/Game.h include/swan/Player.h include/swan/WorldPlane.h include/swan/World.h include/swan/common.h include/swan/Tile.h include/swan/Mod.h include/swan/Body.h | |||||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||||
PUBLICHDRS = include/swan/Chunk.h include/swan/Game.h include/swan/Player.h include/swan/WorldPlane.h include/swan/World.h include/swan/common.h include/swan/Tile.h include/swan/Mod.h include/swan/Body.h | |||||
# Defaults | |||||
PKGS = | |||||
EXTRADEPS = | |||||
EXTRAPUBLICDEPS = | |||||
CONFIG ?= release | |||||
BUILDDIR ?= build | |||||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||||
WARNINGS = -Wall -Wextra -Wno-unused-parameter | |||||
SMAKEFILE ?= Smakefile | |||||
DESTDIR ?= | |||||
PREFIX ?= /usr/local | |||||
PHONIES = dumpdeps dumppublicdeps dumpprojtype clean cleanall | |||||
CONFIGS = release sanitize debug | |||||
PKG_CONFIG ?= pkg-config | |||||
AR ?= ar | |||||
CCOPTS = -Iinclude -fPIC | |||||
CCOPTS_release = -O2 -flto | |||||
CCOPTS_debug = -g | |||||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||||
LDOPTS = | |||||
LDOPTS_release = -flto | |||||
LDOPTS_debug = | |||||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||||
runpfx = @echo $(1) $(2) && $(2) | |||||
.PHONY: all | |||||
all: $(BUILD)/$(PROJNAME).so | |||||
-include $(SMAKEFILE) | |||||
ifeq ($(filter $(CONFIGS),$(CONFIG)),) | |||||
ifeq ($(filter cleanall,$(MAKECMDGOALS)),) | |||||
$(error Unknown config '$(CONFIG)'. Supported configs: $(CONFIGS)) | |||||
endif | |||||
endif | |||||
ifneq ($(PKGS),) | |||||
CCOPTS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) | |||||
LDOPTS += $(shell $(PKG_CONFIG) --libs $(PKGS)) | |||||
endif | |||||
CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||||
$(BUILD)/$(PROJNAME).so: $(OBJS) $(EXTRADEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) -shared $(LDLAGS)) | |||||
touch $(BUILD)/.built | |||||
@echo '(OK)' Created $@. | |||||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||||
$(BUILD)/obj/%.cc.o: src/%.cc $(EXTRAPUBLICDEPS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(CXX)',$(CXX) -o $@ -c $< $(CXXFLAGS)) | |||||
$(BUILD)/dep/%.c.d: src/%.c $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CC) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CFLAGS)) | |||||
$(BUILD)/dep/%.cc.d: src/%.cc $(HDRS) | |||||
@mkdir -p $(@D) | |||||
$(call runpfx,'(DEP)',$(CXX) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CXXFLAGS)) | |||||
.PHONY: install | |||||
install: $(BUILD)/$(PROJNAME).so | |||||
mkdir -p $(DESTDIR)$(PREFIX)/lib | |||||
cp -f $^ $(DESTDIR)$(PREFIX)/lib | |||||
chmod 755 $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||||
mkdir -p $(DESTDIR)$(PREFIX)/include | |||||
cp -rf include/* $(DESTDIR)$(PREFIX)/include | |||||
.PHONY: uninstall | |||||
uninstall: | |||||
rm -f $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||||
rm -rf $(patsubst include/%,$(DESTDIR)$(PREFIX)/include/%,$(wildcard include/*)) | |||||
.PHONY: clean | |||||
clean: | |||||
rm -rf $(PROJNAME) $(BUILD) | |||||
.PHONY: cleanall | |||||
cleanall: | |||||
rm -rf $(BUILDDIR) | |||||
.PHONY: dumpdeps | |||||
dumpdeps: | |||||
@echo $(addprefix $(PREPEND),$(SRCS) $(HDRS) $(EXTRADEPS)) | |||||
.PHONY: dumppublicdeps | |||||
dumppublicdeps: | |||||
@echo $(addprefix $(PREPEND),$(PUBLICHDRS) $(EXTRAPUBLICDEPS)) | |||||
.PHONY: dumpprojtype | |||||
dumpprojtype: | |||||
@echo $(PROJTYPE) | |||||
ifeq ($(filter $(PHONIES),$(MAKECMDGOALS)),) | |||||
-include $(DEPS) | |||||
endif |
PROJNAME = libswan | |||||
PROJTYPE = solib | |||||
PKGS = sfml-all | |||||
CCOPTS += -Iinclude/swan |
namespace Swan { | namespace Swan { | ||||
void Game::loadMod(const std::string &path) { | void Game::loadMod(const std::string &path) { | ||||
registered_mods_.push_back(Mod()); | |||||
Mod &mod = registered_mods_.back(); | |||||
void *dl = dlopen(path.c_str(), RTLD_LAZY); | void *dl = dlopen(path.c_str(), RTLD_LAZY); | ||||
if (dl == NULL) { | |||||
fprintf(stderr, "%s\n", dlerror()); | |||||
return; | |||||
} | |||||
void (*mod_init)(Mod &) = (void (*)(Mod &))dlsym(dl, "mod_init"); | void (*mod_init)(Mod &) = (void (*)(Mod &))dlsym(dl, "mod_init"); | ||||
if (mod_init == NULL) { | |||||
fprintf(stderr, "%s\n", dlerror()); | |||||
} | |||||
registered_mods_.push_back(Mod()); | |||||
Mod &mod = registered_mods_.back(); | |||||
mod_init(mod); | mod_init(mod); | ||||
} | } | ||||
game.world_->current_plane_ = new WorldPlane(); | game.world_->current_plane_ = new WorldPlane(); | ||||
game.world_->planes_.push_back(game.world_->current_plane_); | game.world_->planes_.push_back(game.world_->current_plane_); | ||||
game.loadMod("core.mod/build/release/core.mod.so"); | |||||
game.loadMod("core.mod/core.mod.so"); | |||||
double prevtime = getTime(); | double prevtime = getTime(); | ||||
double fpsAcc = 0; | double fpsAcc = 0; |