示例#1
0
  /**
   * Add EventHandler to handlers list & search through the EventHandlers EventTypes, placing it in
   * the correct lists, so Events can be filtered correctly.
   */
  public final void addEventHandler(final EventHandler _handler) {
    if (exists(_handler) == true) {
      Logger.println(_handler.getName() + "already exists within " + name, Logger.Verbosity.MAJOR);
      return;
    }

    handlers.add(_handler);

    final ArrayList<EventType> types = _handler.getWantedEventTypes();
    if (types.isEmpty() == true || types.contains(Event.ALL_EVENT_TYPES) == true) {
      // Due to legacy we must assumme that a types size of 0,
      // represents a developer wishing to recieve all Events.
      // If the types contains ALL_EVENT_TYPES then only add it
      // to the ALL_EVENT_TYPES EventQueue.
      eventQueues.get(Event.ALL_EVENT_TYPES).addEventHandler(_handler);
      return;
    }

    for (final EventType type : types) {
      if (eventQueues.containsKey(type) == false) {
        addEventQueue(type, new EventQueue(type));
      }

      eventQueues.get(type).addEventHandler(_handler);
    }
  }
    private MalletTexture.Meta addMeta(final String _path, final MalletTexture.Meta _meta) {
      if (_meta != null) {
        imageMetas.put(_path, _meta);
        return _meta;
      }

      Logger.println("Failed to create Texture Meta: " + _path, Logger.Verbosity.NORMAL);
      return new MalletTexture.Meta(_path, 0, 0);
    }
示例#3
0
  public final void removeEventFilter(final EventType _type, final EventFilter _filter) {
    assert _type != null || _filter != null;

    if (eventQueues.containsKey(_type) == false) {
      Logger.println(
          "Can't remove EventFilter event queue: " + _type + " does not exist.",
          Logger.Verbosity.MAJOR);
    }

    eventQueues.get(_type).removeEventFilter(_filter);
  }
    /**
     * Return the meta information associated with an image defined by _path. If the meta data has
     * yet to be generated, create it and store the meta data in imageMetas. This hashmap is
     * persistant across the runtime of the renderer. If the meta data changes from one call to the
     * next, the meta data stored is NOT updated. FileStream would need to be updated to support
     * file modification timestamps.
     */
    public MalletTexture.Meta getMeta(final String _path) {
      synchronized (imageMetas) {
        MalletTexture.Meta meta = imageMetas.get(_path);
        if (meta != null) {
          return meta;
        }

        final FileStream file = GlobalFileSystem.getFile(_path);
        if (file.exists() == false) {
          Logger.println("No Texture found to create Meta: " + _path, Logger.Verbosity.NORMAL);
          return new MalletTexture.Meta(_path, 0, 0);
        }

        return addMeta(_path, createMeta(_path, file));
      }
    }
    public void run() {
      final FileStream file = GlobalFileSystem.getFile(texturePath);
      if (file.exists() == false) {
        Logger.println("Failed to create Texture: " + texturePath, Logger.Verbosity.NORMAL);
        return;
      }

      try {
        final DesktopByteIn in = (DesktopByteIn) file.getByteInStream();
        final InputStream stream = in.getInputStream();
        final BufferedImage image = ImageIO.read(stream);
        in.close();

        synchronized (toBind) {
          // We don't want to bind the BufferedImage now
          // as that will take control of the OpenGL context.
          toBind.add(new Tuple<String, BufferedImage>(texturePath, image));
        }
      } catch (IOException ex) {
        ex.printStackTrace();
      }
    }