浏览代码

old rendering API

Rodrigo Perez-Vicente 2 年之前
父节点
当前提交
6a8d6326a2
共有 5 个文件被更改,包括 7 次插入34 次删除
  1. 1 1
      gym_minigrid/benchmark.py
  2. 1 1
      gym_minigrid/manual_control.py
  3. 1 26
      gym_minigrid/minigrid.py
  4. 1 3
      gym_minigrid/wrappers.py
  5. 3 3
      tests/test_envs.py

+ 1 - 1
gym_minigrid/benchmark.py

@@ -18,7 +18,7 @@ parser.add_argument("--num_resets", default=200)
 parser.add_argument("--num_frames", default=5000)
 parser.add_argument("--num_frames", default=5000)
 args = parser.parse_args()
 args = parser.parse_args()
 
 
-env = gym.make(args.env_name, render_mode="rgb_array")
+env = gym.make(args.env_name)
 
 
 # Benchmark env.reset
 # Benchmark env.reset
 t0 = time.time()
 t0 = time.time()

+ 1 - 1
gym_minigrid/manual_control.py

@@ -93,7 +93,7 @@ parser.add_argument(
 
 
 args = parser.parse_args()
 args = parser.parse_args()
 
 
-env = gym.make(args.env, render_mode="rgb_array")
+env = gym.make(args.env)
 
 
 if args.agent_view:
 if args.agent_view:
     env = RGBImgPartialObsWrapper(env)
     env = RGBImgPartialObsWrapper(env)

+ 1 - 26
gym_minigrid/minigrid.py

@@ -2,14 +2,12 @@ import hashlib
 import math
 import math
 from abc import abstractmethod
 from abc import abstractmethod
 from enum import IntEnum
 from enum import IntEnum
-from functools import partial
 from typing import Any, Callable, Optional, Union
 from typing import Any, Callable, Optional, Union
 
 
 import gym
 import gym
 import numpy as np
 import numpy as np
 from gym import spaces
 from gym import spaces
 from gym.utils import seeding
 from gym.utils import seeding
-from gym.utils.renderer import Renderer
 
 
 # Size in pixels of a tile in the full-scale human view
 # Size in pixels of a tile in the full-scale human view
 from gym_minigrid.rendering import (
 from gym_minigrid.rendering import (
@@ -861,7 +859,6 @@ class MiniGridEnv(gym.Env):
         max_steps: int = 100,
         max_steps: int = 100,
         see_through_walls: bool = False,
         see_through_walls: bool = False,
         agent_view_size: int = 7,
         agent_view_size: int = 7,
-        render_mode: str = None,
         highlight: bool = True,
         highlight: bool = True,
         tile_size: int = TILE_PIXELS,
         tile_size: int = TILE_PIXELS,
         **kwargs,
         **kwargs,
@@ -903,15 +900,6 @@ class MiniGridEnv(gym.Env):
             }
             }
         )
         )
 
 
-        # render mode
-        self.render_mode = render_mode
-        render_frame = partial(
-            self._render,
-            highlight=highlight,
-            tile_size=tile_size,
-        )
-        self.renderer = Renderer(self.render_mode, render_frame)
-
         # Range of possible rewards
         # Range of possible rewards
         self.reward_range = (0, 1)
         self.reward_range = (0, 1)
 
 
@@ -956,8 +944,6 @@ class MiniGridEnv(gym.Env):
         # Return first observation
         # Return first observation
         obs = self.gen_obs()
         obs = self.gen_obs()
 
 
-        self.renderer.reset()
-        self.renderer.render_step()
         if not return_info:
         if not return_info:
             return obs
             return obs
         else:
         else:
@@ -1372,7 +1358,6 @@ class MiniGridEnv(gym.Env):
 
 
         obs = self.gen_obs()
         obs = self.gen_obs()
 
 
-        self.renderer.render_step()
         return obs, reward, done, {}
         return obs, reward, done, {}
 
 
     def gen_obs_grid(self, agent_view_size=None):
     def gen_obs_grid(self, agent_view_size=None):
@@ -1451,7 +1436,7 @@ class MiniGridEnv(gym.Env):
 
 
         return img
         return img
 
 
-    def _render(self, mode="human", highlight=True, tile_size=TILE_PIXELS):
+    def render(self, mode="human", highlight=True, tile_size=TILE_PIXELS):
         assert mode in self.metadata["render_modes"]
         assert mode in self.metadata["render_modes"]
         """
         """
         Render the whole-grid human view
         Render the whole-grid human view
@@ -1508,16 +1493,6 @@ class MiniGridEnv(gym.Env):
         else:
         else:
             return img
             return img
 
 
-    def render(self, mode="human", close=False, highlight=True, tile_size=TILE_PIXELS):
-        if close:
-            raise Exception(
-                "Please close the rendering window using env.close(). Closing the rendering window with the render method is no longer allowed."
-            )
-        if self.render_mode is not None:
-            return self.renderer.get_renders()
-        else:
-            return self._render(mode, highlight=highlight, tile_size=tile_size)
-
     def close(self):
     def close(self):
         if self.window:
         if self.window:
             self.window.close()
             self.window.close()

+ 1 - 3
gym_minigrid/wrappers.py

@@ -181,9 +181,7 @@ class RGBImgObsWrapper(ObservationWrapper):
     def observation(self, obs):
     def observation(self, obs):
         env = self.unwrapped
         env = self.unwrapped
 
 
-        rgb_img = env._render(
-            mode="rgb_array", highlight=True, tile_size=self.tile_size
-        )
+        rgb_img = env.render(mode="rgb_array", highlight=True, tile_size=self.tile_size)
 
 
         return {**obs, "image": rgb_img}
         return {**obs, "image": rgb_img}
 
 

+ 3 - 3
tests/test_envs.py

@@ -101,11 +101,11 @@ def test_render_modes(spec):
 
 
     for mode in env.metadata.get("render_modes", []):
     for mode in env.metadata.get("render_modes", []):
         if mode != "human":
         if mode != "human":
-            new_env = spec.make(render_mode=mode)
+            new_env = spec.make()
 
 
             new_env.reset()
             new_env.reset()
             new_env.step(new_env.action_space.sample())
             new_env.step(new_env.action_space.sample())
-            new_env.render()
+            new_env.render(mode=mode)
 
 
 
 
 @pytest.mark.parametrize("env_id", ["MiniGrid-DoorKey-6x6-v0"])
 @pytest.mark.parametrize("env_id", ["MiniGrid-DoorKey-6x6-v0"])
@@ -192,7 +192,7 @@ def old_run_test(env_spec):
 
 
 @pytest.mark.parametrize("env_id", ["MiniGrid-Empty-8x8-v0"])
 @pytest.mark.parametrize("env_id", ["MiniGrid-Empty-8x8-v0"])
 def test_interactive_mode(env_id):
 def test_interactive_mode(env_id):
-    env = gym.make(env_id, render_mode="human")
+    env = gym.make(env_id)
     env.reset()
     env.reset()
 
 
     for i in range(0, 100):
     for i in range(0, 100):