mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-09 18:44:46 +00:00
Merge branch 'master'
This commit is contained in:
commit
e8ecbbb4d7
@ -28,7 +28,7 @@ Cmd::~Cmd()
|
|||||||
|
|
||||||
void Cmd::execute(Context* ctx)
|
void Cmd::execute(Context* ctx)
|
||||||
{
|
{
|
||||||
DLOG("Cmd: Executing cmd '%s'\n", typeid(*this).name());
|
TRACE("Cmd: Executing cmd '%s'\n", typeid(*this).name());
|
||||||
ASSERT(m_state == State::NotExecuted);
|
ASSERT(m_state == State::NotExecuted);
|
||||||
|
|
||||||
m_ctx = ctx;
|
m_ctx = ctx;
|
||||||
@ -43,7 +43,7 @@ void Cmd::execute(Context* ctx)
|
|||||||
|
|
||||||
void Cmd::undo()
|
void Cmd::undo()
|
||||||
{
|
{
|
||||||
DLOG("Cmd: Undo cmd '%s'\n", typeid(*this).name());
|
TRACE("Cmd: Undo cmd '%s'\n", typeid(*this).name());
|
||||||
ASSERT(m_state == State::Executed || m_state == State::Redone);
|
ASSERT(m_state == State::Executed || m_state == State::Redone);
|
||||||
|
|
||||||
onUndo();
|
onUndo();
|
||||||
@ -56,7 +56,7 @@ void Cmd::undo()
|
|||||||
|
|
||||||
void Cmd::redo()
|
void Cmd::redo()
|
||||||
{
|
{
|
||||||
DLOG("Cmd: Redo cmd '%s'\n", typeid(*this).name());
|
TRACE("Cmd: Redo cmd '%s'\n", typeid(*this).name());
|
||||||
ASSERT(m_state == State::Undone);
|
ASSERT(m_state == State::Undone);
|
||||||
|
|
||||||
onRedo();
|
onRedo();
|
||||||
|
@ -189,10 +189,10 @@ public:
|
|||||||
, m_remap(256)
|
, m_remap(256)
|
||||||
, m_hasLocalColormaps(false)
|
, m_hasLocalColormaps(false)
|
||||||
, m_firstLocalColormap(nullptr) {
|
, m_firstLocalColormap(nullptr) {
|
||||||
DLOG("[GifDecoder] GIF background index=%d\n", (int)m_gifFile->SBackGroundColor);
|
TRACE("[GifDecoder] GIF background index=%d\n", (int)m_gifFile->SBackGroundColor);
|
||||||
DLOG("[GifDecoder] GIF global colormap=%d, ncolors=%d\n",
|
TRACE("[GifDecoder] GIF global colormap=%d, ncolors=%d\n",
|
||||||
(m_gifFile->SColorMap ? 1: 0),
|
(m_gifFile->SColorMap ? 1: 0),
|
||||||
(m_gifFile->SColorMap ? m_gifFile->SColorMap->ColorCount: 0));
|
(m_gifFile->SColorMap ? m_gifFile->SColorMap->ColorCount: 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
~GifDecoder() {
|
~GifDecoder() {
|
||||||
@ -310,7 +310,7 @@ private:
|
|||||||
UniquePtr<Image> frameImage(
|
UniquePtr<Image> frameImage(
|
||||||
readFrameIndexedImage(frameBounds));
|
readFrameIndexedImage(frameBounds));
|
||||||
|
|
||||||
DLOG("[GifDecoder] Frame[%d] transparent index = %d\n", (int)m_frameNum, m_localTransparentIndex);
|
TRACE("[GifDecoder] Frame[%d] transparent index = %d\n", (int)m_frameNum, m_localTransparentIndex);
|
||||||
|
|
||||||
if (m_frameNum == 0) {
|
if (m_frameNum == 0) {
|
||||||
if (m_localTransparentIndex >= 0)
|
if (m_localTransparentIndex >= 0)
|
||||||
@ -325,8 +325,8 @@ private:
|
|||||||
// Convert the sprite to RGB if we have more than 256 colors
|
// Convert the sprite to RGB if we have more than 256 colors
|
||||||
if ((m_sprite->pixelFormat() == IMAGE_INDEXED) &&
|
if ((m_sprite->pixelFormat() == IMAGE_INDEXED) &&
|
||||||
(m_sprite->palette(m_frameNum)->size() > 256)) {
|
(m_sprite->palette(m_frameNum)->size() > 256)) {
|
||||||
DLOG("[GifDecoder] Converting to RGB because we have %d colors\n",
|
TRACE("[GifDecoder] Converting to RGB because we have %d colors\n",
|
||||||
m_sprite->palette(m_frameNum)->size());
|
m_sprite->palette(m_frameNum)->size());
|
||||||
|
|
||||||
convertIndexedSpriteToRgb();
|
convertIndexedSpriteToRgb();
|
||||||
}
|
}
|
||||||
@ -444,7 +444,7 @@ private:
|
|||||||
int ncolors = colormap->ColorCount;
|
int ncolors = colormap->ColorCount;
|
||||||
bool isLocalColormap = (m_gifFile->Image.ColorMap ? true: false);
|
bool isLocalColormap = (m_gifFile->Image.ColorMap ? true: false);
|
||||||
|
|
||||||
DLOG("[GifDecoder] Local colormap=%d, ncolors=%d\n", isLocalColormap, ncolors);
|
TRACE("[GifDecoder] Local colormap=%d, ncolors=%d\n", isLocalColormap, ncolors);
|
||||||
|
|
||||||
// We'll calculate the list of used colormap indexes in this
|
// We'll calculate the list of used colormap indexes in this
|
||||||
// frameImage.
|
// frameImage.
|
||||||
@ -527,17 +527,17 @@ private:
|
|||||||
// Number of colors in the image that aren't in the palette.
|
// Number of colors in the image that aren't in the palette.
|
||||||
int missing = (usedNColors - found);
|
int missing = (usedNColors - found);
|
||||||
|
|
||||||
DLOG("[GifDecoder] Bg index=%d,\n"
|
TRACE("[GifDecoder] Bg index=%d,\n"
|
||||||
" Local transparent index=%d,\n"
|
" Local transparent index=%d,\n"
|
||||||
" Need extra index to show bg color=%d,\n "
|
" Need extra index to show bg color=%d,\n "
|
||||||
" Found colors in palette=%d,\n"
|
" Found colors in palette=%d,\n"
|
||||||
" Used colors in local pixels=%d,\n"
|
" Used colors in local pixels=%d,\n"
|
||||||
" Base for new colors in palette=%d,\n"
|
" Base for new colors in palette=%d,\n"
|
||||||
" Colors in the image missing in the palette=%d,\n"
|
" Colors in the image missing in the palette=%d,\n"
|
||||||
" New palette size=%d\n",
|
" New palette size=%d\n",
|
||||||
m_bgIndex, m_localTransparentIndex, needsExtraBgColor,
|
m_bgIndex, m_localTransparentIndex, needsExtraBgColor,
|
||||||
found, usedNColors, base, missing,
|
found, usedNColors, base, missing,
|
||||||
base + missing + (needsExtraBgColor ? 1: 0));
|
base + missing + (needsExtraBgColor ? 1: 0));
|
||||||
|
|
||||||
Palette oldPalette(*palette);
|
Palette oldPalette(*palette);
|
||||||
palette->resize(base + missing + (needsExtraBgColor ? 1: 0));
|
palette->resize(base + missing + (needsExtraBgColor ? 1: 0));
|
||||||
@ -645,8 +645,8 @@ private:
|
|||||||
m_localTransparentIndex = (extension[1] & 1) ? extension[4]: -1;
|
m_localTransparentIndex = (extension[1] & 1) ? extension[4]: -1;
|
||||||
m_frameDelay = (extension[3] << 8) | extension[2];
|
m_frameDelay = (extension[3] << 8) | extension[2];
|
||||||
|
|
||||||
DLOG("[GifDecoder] Disposal method: %d\n Transparent index: %d\n Frame delay: %d\n",
|
TRACE("[GifDecoder] Disposal method: %d\n Transparent index: %d\n Frame delay: %d\n",
|
||||||
m_disposalMethod, m_localTransparentIndex, m_frameDelay);
|
m_disposalMethod, m_localTransparentIndex, m_frameDelay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1046,10 +1046,10 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DLOG("[GifEncoder] frameBounds=%d %d %d %d prev=%d %d %d %d next=%d %d %d %d\n",
|
TRACE("[GifEncoder] frameBounds=%d %d %d %d prev=%d %d %d %d next=%d %d %d %d\n",
|
||||||
frameBounds.x, frameBounds.y, frameBounds.w, frameBounds.h,
|
frameBounds.x, frameBounds.y, frameBounds.w, frameBounds.h,
|
||||||
prev.x, prev.y, prev.w, prev.h,
|
prev.x, prev.y, prev.w, prev.h,
|
||||||
next.x, next.y, next.w, next.h);
|
next.x, next.y, next.w, next.h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,67 +13,32 @@
|
|||||||
|
|
||||||
#include "app/app.h"
|
#include "app/app.h"
|
||||||
#include "app/resource_finder.h"
|
#include "app/resource_finder.h"
|
||||||
#include "ui/base.h"
|
#include "base/log.h"
|
||||||
|
|
||||||
#include <cstdarg>
|
|
||||||
#include <cstdio>
|
|
||||||
#include <cstring>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace app {
|
namespace app {
|
||||||
|
|
||||||
static FILE* log_fileptr = NULL;
|
|
||||||
static LoggerModule* logger_instance = NULL;
|
static LoggerModule* logger_instance = NULL;
|
||||||
|
|
||||||
LoggerModule::LoggerModule(bool verbose)
|
LoggerModule::LoggerModule(bool verbose)
|
||||||
: m_verbose(verbose)
|
: m_verbose(verbose)
|
||||||
{
|
{
|
||||||
logger_instance = this;
|
logger_instance = this;
|
||||||
|
|
||||||
|
if (verbose) {
|
||||||
|
app::ResourceFinder rf(false);
|
||||||
|
rf.includeUserDir("aseprite.log");
|
||||||
|
auto filename = rf.defaultFilename();
|
||||||
|
base_set_log_filename(filename.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggerModule::~LoggerModule()
|
LoggerModule::~LoggerModule()
|
||||||
{
|
{
|
||||||
LOG("Logger module: shutting down (this is the last line)\n");
|
LOG("Logger module: shutting down (this is the last line)\n");
|
||||||
|
|
||||||
if (log_fileptr) {
|
// Close log file
|
||||||
fclose(log_fileptr);
|
base_set_log_filename("");
|
||||||
log_fileptr = NULL;
|
logger_instance = nullptr;
|
||||||
}
|
|
||||||
|
|
||||||
logger_instance = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace app
|
} // namespace app
|
||||||
|
|
||||||
void verbose_log(const char* format, ...)
|
|
||||||
{
|
|
||||||
if (app::logger_instance && !app::logger_instance->isVerbose())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!app::log_fileptr) {
|
|
||||||
std::string filename;
|
|
||||||
app::ResourceFinder rf(false);
|
|
||||||
rf.includeUserDir("aseprite.log");
|
|
||||||
filename = rf.defaultFilename();
|
|
||||||
|
|
||||||
if (filename.size() > 0)
|
|
||||||
app::log_fileptr = fopen(filename.c_str(), "w");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (app::log_fileptr) {
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
|
|
||||||
vfprintf(app::log_fileptr, format, ap);
|
|
||||||
fflush(app::log_fileptr);
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
va_start(ap, format);
|
|
||||||
vfprintf(stderr, format, ap);
|
|
||||||
fflush(stderr);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -53,6 +53,7 @@ set(BASE_SOURCES
|
|||||||
file_handle.cpp
|
file_handle.cpp
|
||||||
fs.cpp
|
fs.cpp
|
||||||
launcher.cpp
|
launcher.cpp
|
||||||
|
log.cpp
|
||||||
mem_utils.cpp
|
mem_utils.cpp
|
||||||
memory.cpp
|
memory.cpp
|
||||||
memory_dump.cpp
|
memory_dump.cpp
|
||||||
|
56
src/base/log.cpp
Normal file
56
src/base/log.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// Aseprite Base Library
|
||||||
|
// Copyright (c) 2001-2015 David Capello
|
||||||
|
//
|
||||||
|
// This file is released under the terms of the MIT license.
|
||||||
|
// Read LICENSE.txt for more information.
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "base/log.h"
|
||||||
|
|
||||||
|
#include "base/file_handle.h"
|
||||||
|
|
||||||
|
#include <cstdarg>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
static FILE* log_fileptr = nullptr;
|
||||||
|
static std::string log_filename;
|
||||||
|
|
||||||
|
void base_set_log_filename(const char* filename)
|
||||||
|
{
|
||||||
|
if (log_fileptr) {
|
||||||
|
fclose(log_fileptr);
|
||||||
|
log_fileptr = nullptr;
|
||||||
|
}
|
||||||
|
log_filename = filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
void base_log(const char* format, ...)
|
||||||
|
{
|
||||||
|
if (!log_fileptr) {
|
||||||
|
if (log_filename.empty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
log_fileptr = base::open_file_raw(log_filename, "w");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (log_fileptr) {
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, format);
|
||||||
|
|
||||||
|
vfprintf(log_fileptr, format, ap);
|
||||||
|
fflush(log_fileptr);
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
va_start(ap, format);
|
||||||
|
vfprintf(stderr, format, ap);
|
||||||
|
fflush(stderr);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
}
|
19
src/base/log.h
Normal file
19
src/base/log.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// Aseprite Base Library
|
||||||
|
// Copyright (c) 2001-2015 David Capello
|
||||||
|
//
|
||||||
|
// This file is released under the terms of the MIT license.
|
||||||
|
// Read LICENSE.txt for more information.
|
||||||
|
|
||||||
|
#ifndef BASE_LOG_H_INCLUDED
|
||||||
|
#define BASE_LOG_H_INCLUDED
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Define BASE_DONT_DEFINE_LOG_MACRO in case that you don't need LOG
|
||||||
|
#ifndef BASE_DONT_DEFINE_LOG_MACRO
|
||||||
|
#define LOG base_log
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void base_set_log_filename(const char* filename);
|
||||||
|
void base_log(const char* format, ...);
|
||||||
|
|
||||||
|
#endif
|
11
src/config.h
11
src/config.h
@ -35,15 +35,6 @@
|
|||||||
#define UPDATE_URL WEBSITE "update/?xml=1"
|
#define UPDATE_URL WEBSITE "update/?xml=1"
|
||||||
#define COPYRIGHT "Copyright (C) 2001-2015 David Capello"
|
#define COPYRIGHT "Copyright (C) 2001-2015 David Capello"
|
||||||
|
|
||||||
#define LOG verbose_log
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define DLOG LOG
|
|
||||||
#else
|
|
||||||
#define DLOG(...) ((void)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// verbose_log() is defined in src/app/log.cpp and used through LOG macro
|
|
||||||
void verbose_log(const char* format, ...);
|
|
||||||
|
|
||||||
#include "base/base.h"
|
#include "base/base.h"
|
||||||
#include "base/debug.h"
|
#include "base/debug.h"
|
||||||
|
#include "base/log.h"
|
||||||
|
@ -117,8 +117,8 @@ public:
|
|||||||
HttpResponse response(&body);
|
HttpResponse response(&body);
|
||||||
request.send(response);
|
request.send(response);
|
||||||
|
|
||||||
DLOG("Checking updates: %s (User-Agent: %s)\n", url.c_str(), getUserAgent().c_str());
|
TRACE("Checking updates: %s (User-Agent: %s)\n", url.c_str(), getUserAgent().c_str());
|
||||||
DLOG("Response:\n--\n%s--\n", body.str().c_str());
|
TRACE("Response:\n--\n%s--\n", body.str().c_str());
|
||||||
|
|
||||||
CheckUpdateResponse data(body.str());
|
CheckUpdateResponse data(body.str());
|
||||||
delegate->onResponse(data);
|
delegate->onResponse(data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user